danke für deine Hilfe und für das schnelle reagieren
hab da was ähliches Programmiert, aber ich hab da noch ein Problem, vielleicht siehst du ja mein Fehler, bzw. was ich Falsch mache.
Da ich noch ein zweites memo feld habe wo die felgeschlagende uploade zu sehen sind würde ich gerne diese auch noch zum schluß uploaden.
weißt du da wie ich das am besten machen kann???
Danke für deine Hilfe.
Meine Procedure sieht so aus:
Delphi-Quellcode:
procedure TDASSUpload.UploadAll(localpath: String; serverpath: String);
var
i : integer;
searchrec: TSearchRec;
newdir: String;
begin
newdir := localpath + '\';
if AnsiLastChar(localpath) <> '\' then
newdir := localpath + '\'
else
localpath:= localpath;
MemoUpload.Lines.Append('> lokales Verzeichnis übermittelt : '+ localpath);
SetCurrentDir(localpath);
MemoUpload.Lines.Append('> cd locale Verzeichnis gewechlselt: ' + localpath);
MemoUpload.Lines.Add('> server Verzeichnis übermittelt : '+ serverpath);
DataConnectModule.FTPClient.MakeDir(serverpath);
DataConnectModule.FTPClient.ChangeDir(serverpath);
MemoUpload.Lines.Append('> md server Verzeichnis angelegt : '+ serverpath);
MemoUpload.Lines.Append('>cd server Verzeichnis : '+ serverpath);
if AnsiLastChar(localpath) <> '\' then
localpath := localpath + '\*.*'
else
localpath:= localpath +'*.*';
if AnsiLastChar(serverpath) <> '/' then
serverpath := serverpath + '/';
if FindFirst(localpath, faAnyFile, SearchRec) = 0 then
begin
try
repeat
if (searchrec.Name <> '.') AND (searchrec.Name <> '..') then
begin
if (searchrec.Attr and faDirectory) <> 0 then
uploadAll(newdir+searchrec.name,searchrec.name)
else
begin
try
DataConnectModule.FTPClient.Put(searchrec.Name,extractfilename(searchrec.Name));
MemoUpload.Lines.Append('> up file : '+searchrec.Name);
except
MemoError.Lines.Add('> up abotive : '+newdir+searchrec.Name+ ' to '+ serverpath);
end;
end;
end
until FindNext(searchrec)<> 0;
DataConnectModule.FTPClient.ChangeDirUp;
finally
sysUtils.FindClose(searchrec);
end;
end;
übermittelt werden diese Variablen : localpath und serverpath.
Problem : Beim lokalem Verzeichnis c:\temp\test3\*.* versucht mein Programm
eine Datei hochzulanden die im c:\temp\ liegt.
In der Fehlermeldung wird diese Datei nicht gefunden bzw. kann nicht geöffnet werden c:\temp\test3\default.html.
Ist auch RICHTIG die default.html befindet sich unter c:\temp\default.html
memoUpload = Protokollfenster
memoError = Protokollfehlerfenster
ändere ich diese zeile
if FindFirst(localpath, faAnyFile, SearchRec) = 0 then
in
if FindFirst(localpath, faAnyFile-faDirectory-faVolumeId, SearchRec) = 0 then
findet mein Programm welcome.html und default.hatml und läd diese auf dem server hoch. lol
Verzeichnisstrucktur das durchlaufen wird:
c:\temp\
c:\temp\test1
c:\temp\test1\testA
c:\temp\test1\testA\datei1.html
c:\temp\test1\testA\datei2.html
c:\temp\test1\testA\etc.
c:\temp\test1\testB
c:\temp\test1\testB\datei1.html
c:\temp\test1\testB\datei2.html
c:\temp\test1\testB\etc.
c:\temp\test1\testC
c:\temp\test1\testC\datei1.html
c:\temp\test1\testC\datei2.html
c:\temp\test1\testC\etc.
c:\temp\test1\testC\datei1.html
c:\temp\test1\testC\datei2.html
c:\temp\test1\testC\etc.
c:\temp\test2
c:\temp\test2\testA
c:\temp\test2\testA\datei1.html
c:\temp\test2\testA\datei2.html
c:\temp\test2\testA\etc.
c:\temp\test2\testB
c:\temp\test2\testB\datei1.html
c:\temp\test2\testB\datei2.html
c:\temp\test2\testB\etc.
c:\temp\test2\testC
c:\temp\test2\testC\datei1.html
c:\temp\test2\testC\datei2.html
c:\temp\test2\testC\etc.
c:\temp\test2\testC\datei1.html
c:\temp\test2\testC\datei2.html
c:\temp\test2\testC\etc.
c:\temp\test3
c:\temp\test3\datei1.html
c:\temp\test3\datei2.html
c:\temp\test3\datei3.html
c:\temp\test3\etc.
c:\temp\default.html
c:\temp\welcome.html