Hi gabneo
Delphi-Quellcode:
for i := flist.Count-1 downto 0 do//<= Hier beginnst du deine Schleife
begin
sFilename := extractfilepath(paramstr(0)) + flist[i].NodeValue;
sFile := TFileStream.Create(sFilename, fmCreate); //<= Hier erstellst du im Programmverzeichnis, auf das du keinen Zugriff hast,
// die Datei ***
try
fparams.Text := 'RPC=download';
fparams.Add('file=' + flist[i].NodeValue);
Queue ( procedure begin Form2.log('Post'); end);
fhttp.Post(TIdURI.URLEncode(fURL), fparams, sFile);
finally // <= Hier leitest du einen Codeabschnitt ein, der in jedem Fall ausgeführt werden soll.
fhttp.Disconnect; // Hier schliesst du die Verbindung.
sFile.Free; // und gibst den Filstream frei.
Queue ( procedure begin Form2.log('SetFileDate'); end);
SetFileDate(sFilename, UnixToDateTime(flist[i].Attributes['timestamp']));
// --> hier hört er nach einem Durchlauf auf <-- das Filedate wird noch einwanfrei gesetzt....
end;
end;
Da du die http-Verbindung schon im ersten Scheifendurchlauf schliesst,ist da nichts mehr, was in der Schleife verarbeitet werden könnte. Auf jeden Falll aber wäre es sehr interessant, das Codeschnpsel zu sehen, das vor Abarbeitung der Schleife und bei/nach Verbindungsherstellung abläuft.
Gruss
Delbor
PS: *** Das Programmverzeichnis ist nach fertigsttellung deines Programmes und nach dessen Istallation C:\Programme. Und da hat kein User Zugriff darauf (seit WinXP(?)). Und deshalb wird dannzumal jeder VCersuch, da in eine Ini-Datei oder sonstwas zu schreiben, fehlschlagen.
Eine Mögliche Lösung findest du zum Beispiel
hier