08. september 2006 - 09:18Der er
3 kommentarer og 1 løsning
TSheelListView - kopier alt incl foldere til FTP (En slags loop)
Hej Jeg benytter er TShellListView samt en idFTP. Jeg skal have alle filer i alle foldere kopieret over på min ftp server. Mit problem er niveauet af foldere og filer - nedestående kode virker jo kun på et niveau. Sagt på en anden måde - hvordan får jeg åbnet alle min "subfolders" og kopieret alle filer i disse foldere - indtil der ikke er flere filer/foldere.
for i := 0 to fileviewIndividual.Items.Count-1 do begin if fileviewIndividual.Folders[i].IsFolder then begin end else
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du skal lave en rekursiv rutine, dvs. en der kalder sig selv indtil der ikke er flere bib./filer. Hvis du søger efter noget diskscan burde du kunne finde noget kode her på siden.
rekursiv rutimer er ikke noget je ghar rodet med før - jeg fandt følgende, men det hjælper mig ikke rigtigt - har du kendskab til et bedre eksempel ?
if FindFirst(IncludeTrailingBackslash(CPath)+\'*.*\',faANYFILE,S) = 0 then repeat if ( S.Attr and faSysFile = 0 ) and ( S.Attr and faDIRECTORY = 0 ) and ( S.Attr and faVolumeID = 0 ) and ( S.Name <> \'.\' ) and ( S.Name <> \'..\' ) then begin // Do the stoff here if OkToAddFile(S.FindData.cFileName) then L.AddObject(IncludeTrailingBackslash(CPath)+S.FindData.cFileName,TObject(S.Size)); end; until FindNext(S) <> 0; FindClose(S);
if Subs and ( FindFirst(\'*.*\',faDIRECTORY,S) = 0 ) then repeat if ( S.Attr and faDIRECTORY <> 0 ) and ( S.Name <> \'.\' ) and ( S.Name <> \'..\' ) then begin ScanFiles(IncludeTrailingBackslash(CPath)+S.Name,Subs,L); ChDir(\'..\'); end; until FindNext(S) <> 0; FindClose(S);
Hej Igen Jeg har lavet nedenstående - men det virker ikke helt efter hensigten - jeg har 2 væsentlige problemer
1. Jeg har ikke den totale "sti" i Srec.Name bør jeg tage den med som en parameter? 2. Når jeg opretter ny folder på ftp, skal jeg skifte "ned" i den og tilbage når jeg er færdig met at kopiere alle filer/foldere ned i denne - hvordan implementerer jeg det ?
function TForm1.fCopyAllFilesInFolder(sRoot : String): boolean; var Srec : TSearchrec; dummy : integer; sdir : string; begin result := false; sdir := trim(sRoot); if sdir = '' then exit; if directoryexists(sRoot) then begin if sdir[length(sdir)] <> '\' then sdir := sdir + '\'; dummy := FindFirst(sdir+'*.*',faAnyfile, SRec); while dummy = 0 do begin if srec.attr = fadirectory then begin ftp.MakeDir(Srec.Name); end else ftp.Put(sRoot, extractFilename(sRoot)); dummy := FindNext(SRec); end; findclose(SRec); end; result := true; // blev det nu også slettet ? end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.