Einzelnen Beitrag anzeigen

mr2

Registriert seit: 3. Mai 2003
140 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: upload local auf einem server

  Alt 17. Nov 2003, 14:18
Zitat von M4ST3R:
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
"... we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we don't know. But there are also unknown unknowns - the ones we don't know we don't know."
  Mit Zitat antworten Zitat