Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Das System kann den Pfad nicht finden (https://www.delphipraxis.net/189649-das-system-kann-den-pfad-nicht-finden.html)

Delbor 5. Jul 2016 11:17

Das System kann den Pfad nicht finden
 
Hi zusammen
Da dieses Thema nicht mehr ganz so zum Thema dieses Threads passt, mache ich einen neuen auf.
Aktueller Stand der Dinge ist: Ich habe 2 WebactionItems, in denen ich jeweils versuche, einen Hintergrund, bzw. ein Logo zu laden:

Delphi-Quellcode:
procedure TWebModule1.WebModule1WebActBackgroundItem2Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    var  fs : tFileStream; sFile, BGdPath : String;
begin
  if Request.PathInfo = '/Images/background/bgblue.jpg' then
  begin
    try
//                     E:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\DelborDataSnapServer\Images\background
      sFile := Format('E:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\DelborDataSnapServer\Images\background\%s', [Request.QueryFields.Values['background']]);

      fs := tFileStream.Create(sFile,fmOpenRead);
...
und
Delphi-Quellcode:
procedure TWebModule1.WebModule1WebActLogoitemAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    var  fs : tFileStream; sFile, BGdPath : String;
begin
  try
//                   E:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\DelborDataSnapServer\Images\Logo
    sFile := Format('E:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\DelborDataSnapServer\Images\Logo\%s', [Request.QueryFields.Values['Logo']]);

    fs := tFileStream.Create(sFile,fmOpenRead);
Beide Male wird mir eine Exception geworfen - die Fehlermeldung besagt in etwa das, was der Threadtitel aussagt.
In beiden Codeschnipseln steht über der Format-Anweisung jeweils der Pfad, wie er im Explorer in der Adresszele steht - der kann daher eigentlich gar nicht falsch sein.
Soeben versucht habe ich:
Delphi-Quellcode:
sFile := Format('\Images\Logo\%s', [Request.QueryFields.Values['Logo']]);
Das hätte eigentlich funktionieren sollen (unterhalb des Html-Ordners liegt noch einOrdner 'Logo' mit dem gesuchten Inhalt). Das Resultat war jedoch dasselbe...
Was läuft da falsch?

Gruss
Delbor

rapante 5. Jul 2016 11:21

AW: Das System kann den Pfad nicht finden
 
Mal so aus der Hüfte: Müsste man die Backslashes nicht escapen? Also: "C:\\testordener\\datei.jpg"

p80286 5. Jul 2016 11:29

AW: Das System kann den Pfad nicht finden
 
Zitat:

Zitat von Delbor (Beitrag 1341977)
Beide Male wird mir eine Exception geworfen - die Fehlermeldung besagt in etwa das, was der Threadtitel aussagt.

"In etwa" ist ja sehr dehnbar.
a) nimm die Meldung wörtlich, ist der Pfad wirklich vorhanden? was wird an das Stream.Create wirklich übergeben?
b) Dir (deinem Programm)fehlt die notwendige Berechtigung die Datei zu öffnen.
c) Die Datei ist schon geöffnet (und sei es durch ein ProgrammZombie)

Gruß
K-H

Sir Rufo 5. Jul 2016 11:37

AW: Das System kann den Pfad nicht finden
 
@p80286

Um zu ermitteln was in
Delphi-Quellcode:
sfile
steht wenn der Stream erzeugt wird müsste man ja so etwas wie einen Debugger haben und den auch noch verwenden und dann auch noch lesen.

Das sind ja drei Dinge auf einmal ... und das gibt es doch nur beim Ü-Ei

Ich hätte eigentlich erwartet, dass man auf diese Idee auch von selber kommt und diese Erkenntnis gleich mit in die Frage packt ... obwohl, welche Frage gibt es dann noch?

Delbor 5. Jul 2016 11:39

AW: Das System kann den Pfad nicht finden
 
Hi zusammen

@rapante:
Wäre wohl zu testen. Andrerseits enthält request.pathinfo nur einzelne Slashes (noch nicht mal Backslashes). Und mein kluges Buch weiss auch nichts davon...
@ p80286:
'In etwa': Ich habe das Wörtchen 'angegebenen' ausgelassen.
a) Ja, der Pfad ist vorhanden
b) Wenig wahrscheinlich, aber wäre zu prüfen
c) Da bliebe wohl nur ein neustart...

Gruss
Delbor

Sir Rufo 5. Jul 2016 11:44

AW: Das System kann den Pfad nicht finden
 
Es ist anscheinend sehr schwer :roll:

Delphi-Quellcode:
procedure TWebModule1.WebModule1WebActBackgroundItem2Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    var fs : tFileStream; sFile, BGdPath : String;
begin
  if Request.PathInfo = '/Images/background/bgblue.jpg' then
  begin
    try
// E:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\DelborDataSnapServer\Images\background
      sFile := Format('E:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\DelborDataSnapServer\Images\background\%s', [Request.QueryFields.Values['background']]);

      /// !!! AUFMERKSAMKEIT !!!!
      /// Was steht JETZT in der Variablen sfile?
      /// !!! AUFMERKSAMKEIT !!!!

      fs := tFileStream.Create(sFile,fmOpenRead);
...
So besser zu verstehen?

MrSpock 5. Jul 2016 11:48

AW: Das System kann den Pfad nicht finden
 
Kann es an dem Leerzeichen im Pfadnamen liegen?

Sir Rufo 5. Jul 2016 11:54

AW: Das System kann den Pfad nicht finden
 
Zitat:

Zitat von MrSpock (Beitrag 1341986)
Kann es an dem Leerzeichen im Pfadnamen liegen?

Das wäre nur dann zu beachten, wenn man den Pfad als Kommandozeilen-Parameter übergibt ... sonst ist es wurscht ... bzw. genau richtig so, wenn der Pfad auch exakt so lautet ;)

PS: Ich vermute mal, dass in
Delphi-Quellcode:
sfile
folgender Inhalt zu finden ist
Zitat:

E:\DelphiXE8 Corner\DelphiXE8VclCorner\DelborWebserverXE8\Delbo rDataSnapServer\Images\background\

Delbor 5. Jul 2016 12:01

AW: Das System kann den Pfad nicht finden
 
Hi Sir Rufo

Nachdem ich deinen Beitrag (#4) gelesen hatte, holte ich das mal nach - da steht der Pfad so drin, wie ich ihn aus dem Explorer kopiert habe.
(Den auskommentierten). Also ohne Dateiangabe. Und wenn ich das richtig verstanden habe, sollte in
Delphi-Quellcode:
[Request.QueryFields.Values['background']
folgendes stehen.
Delphi-Quellcode:
'background=bgblue.jpg'
, respektive eine Liste mit Namen/Werte-Paaren, wenn da mehr als eine Datei vorhanden ist.

Gruss
Delbor
PS:
Zitat:

PS: Ich vermute mal, dass in sfile folgender Inhalt zu finden ist
So ist es...

Sir Rufo 5. Jul 2016 12:07

AW: Das System kann den Pfad nicht finden
 
Zitat:

Zitat von Delbor (Beitrag 1341990)
PS:
Zitat:

PS: Ich vermute mal, dass in sfile folgender Inhalt zu finden ist
So ist es...

Na, dann hast du den Fehler doch schon gefunden ... dann kannst du ja weiter machen


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz