rekursiv verzeichnisse kopieren

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Alfadur

Betreff: rekursiv verzeichnisse kopieren

BeitragFr, Mai 20, 2005 4:30
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo community,

habe auch mal ein problem ... hab mir ne routine geschrieben um verzeichnisse zu kopieren, natürlich rekursiv, wegen unterverzeichnissen. funktioniert auch.... fast.
solange nur ein unterordner da ist, wird der anstandslos kopiert, sowie auch dessen unterordner... aber eben immer nur einer...

BlitzBasic: [AUSKLAPPEN]

Function copy_dir(quelle$,ziel$)
If Right(quelle$,1)<>\"\\" Then quelle$=quelle$+\"\\"
If Right(ziel$,1)<>\"\\" Then ziel$=ziel$+\"\\"
DebugLog \"Quellverzeichnis : \"+quelle$
DebugLog \"Zielverzeichnis : \"+ziel$
If FileType(ziel$)=0 Then CreateDir(ziel$)
ChangeDir(quelle$)
DebugLog \"Aktuelles Verzeichnis : \"+CurrentDir$()
If CurrentDir$()<>quelle$ Then Return -1
dir=ReadDir(quelle$)
If dir=0 Then Return -2
Repeat
datei$=NextFile(dir)
If datei$<>\".\" And datei$<>\"..\" Then
Select FileType(datei$)
Case 1
DebugLog \"Kopiere Datei \"+quelle$+datei$+\" nach \"+ziel$+datei$
CopyFile(quelle$+datei$,ziel$+datei$)
Case 2
DebugLog \"Kopiere Verzeichnis \"+quelle$+datei$+\" nach \"+ziel$+datei$
copy_dir(quelle$+datei$,ziel$+datei$)
End Select
End If
Until datei$=\"\"
CloseDir dir
Return True
End Function


hab auch schon debugged, datei$ enthält zwar den namen des (zweiten) unterordners, aber er überspringt dann einfach das select statement... und ich hab null plan warum. kann mir das jemand sagen!?
A Cray is the only computer that runs an endless loop in less than four hours.
 

Klaas

BeitragFr, Mai 20, 2005 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
sowas hatte ich auch schonmal geschrieben ... wirf dochmal einen Blick drauf

http://www.blitzbasic.com/code...p?code=934

Alfadur

BeitragFr, Mai 20, 2005 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
cool cool, aber ich hab mir mal das ff_smartcopy angeschaut, was ja machen soll was meins auch macht und das "herzstück"



BlitzBasic: [AUSKLAPPEN]

While (entry$ <> \"\")
If entry$ <> \".\" And entry$ <> \"..\"
full_entry$ = file$+\"\\"+entry$
Select FileType(full_entry$)
Case 0
Case 1
If Not ff_smartcopy(full_entry$,new_file$+\"\\"+entry$,overwrite,move) Then Return False
Case 2
If Not ff_smartcopy(full_entry$,new_file$+\"\\"+entry$,overwrite,move) Then Return False
End Select
End If
entry$=NextFile(dir)
Wend



sieht meinem code ja schon sehr ähnlich, auf den ersten blick sehe ich jetzt nicht was du anders machst als ich ... hmpf. werde mich heute abend mal hinsetzen und mit deinen funktionen spielen, mal schaun worans liegt. ist sicher nur ein ganz blöder fehler ... danke
A Cray is the only computer that runs an endless loop in less than four hours.

Alfadur

BeitragFr, Mai 20, 2005 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
ach shit.... oder "ach sith" wie man in diesen tagen sagt... habs gefunden. des rätsels lösung ist

BlitzBasic: [AUSKLAPPEN]

full_entry$ = file$+\"\\"+entry$


ich hab immer nur den entry geprüft... jetzt funktioniert meins auch. gracias
A Cray is the only computer that runs an endless loop in less than four hours.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group