Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komisches Verhalten bei TFileStream & String (https://www.delphipraxis.net/149726-komisches-verhalten-bei-tfilestream-string.html)

alexstv 28. Mär 2010 17:11


Komisches Verhalten bei TFileStream & String
 
Hallo
Ich proammiere zur Zeit einen kleinen Downloader für mich. Jedoch habe ich ein Problem mit dem speichern der Datei.
Zunächst einmal ein Auszug aus dem Source:


Delphi-Quellcode:
procedure TMainForm.UrlToFile(SrcURL, DestFile: String);
var
  lStream: TFileStream;
begin
  //DestFile := 'D:\Projects\Test\Binary\Download\Test.jpg';
  //SrcURL := 'http://sd.testserver.tld/files/Test.jpg';
  lStream := TFileStream.Create(DestFile, fmCreate or fmShareDenyNone);
  try
    IdHTTP1.Get(SrcURL, lStream);
  finally
    if Assigned(lStream) then lStream.Free;
  end;
end;

procedure TMainForm.BitBtn1Click(Sender: TObject);
begin
  ...
  FileServer := 'http://sd.testserver.tld/';
  LocalDir := 'D:\Projects\Test\Binary\';
  FileURL := FileServer+'files/Test.jpg';
  LocalSaveFilename := LocalDir+'Download\Test.jpg';
  UrlToFile(FileURL , LocalSaveFilename);
  ...
end;
Wenn ich jetzt das Programm starte und auf den Button klicke erhalte ich folgende Fehlermeldung:
Code:
Datei "D:\Projects\Test\Binary\Download\" kann nicht erstellt werden. Das System kann den angegebenen Pfad nicht finden
Der Pfad ist vorhanden und das komische ist, das wenn ich die Strings DestFile und SrcURL in der Procedure UrlToFile direkt habe funktioniert der Download ohne Probleme.

Ich hoffe, dass mir jemand helfen kann das Problem zu lösen.
Vielen Dank schon einmal.

himitsu 28. Mär 2010 17:14

Re: Komisches Verhalten bei TFileStream & String
 
Zitat:

Datei "D:\Projects\Test\Binary\Download\" kann nicht erstellt werden. Das System kann den angegebenen Pfad nicht finden
Wo ist denn in "D:\Projects\Test\Binary\Download\" der Dateiname?

Schau mal bitte nach, ob die Parameter auch korrekt übergeben werden.

alexstv 28. Mär 2010 17:19

Re: Komisches Verhalten bei TFileStream & String
 
Das ist ja das Problem. ich weiß nicht warum LocalSaveFilename auf einmal D:\Projects\Test\Binary\Download\ ist.
Normalerweise müsste LocalSaveFilename ja D:\Projects\Test\Binary\Download\Test.jpg ergeben.

Anscheinend wird, warum auch immer, nur D:\Projects\Test\Binary\Download\ übergeben.

himitsu 28. Mär 2010 17:31

Re: Komisches Verhalten bei TFileStream & String
 
Bei sowas nutzt man etwas, welches sich Hier im Forum suchenDebuggen ( z.B. Debuggen ) nennt ... man gehe den QuellCode Befehl für Befehl durch, schaue was wo passiert und vergleiche es mit den Erwartungen was dort passieren sollte.

alzaimar 28. Mär 2010 19:23

Re: Komisches Verhalten bei TFileStream & String
 
Also, ich sehe im Code ein '/', wo ein '\' stehen müsste. :gruebel:

Christian Seehase 28. Mär 2010 20:37

Re: Komisches Verhalten bei TFileStream & String
 
Zitat:

Zitat von alzaimar
Also, ich sehe im Code ein '/', wo ein '\' stehen müsste. :gruebel:

/ und \ sind in Windows im Dateisystem gleichberechtigt.
Die eine oder andere Funktion von Delphi kommt damit zwar nicht klar (z.B. ExtractFileName usw.) aber TFileStream hat damit kein Problem.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.

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