Kopieren von Dateien !
Verfasst: 14.03.2018 12:15
Hallo Leute,
habe mal wieder eine Frage, zu meinen derzeitigen Projekt.
Ich habe eine Kopierprocedure geschrieben die auch funzt nur sind ein paar Dinge die mich noch stören !
zumal ich mit Threads noch nie was gemacht habe, und mir im moment der richtige Ansatz dazu fehlt.
Ich hoffe das ihr mir da auch wieder weiterhelfen könnt
Gruß Silbersurfer
habe mal wieder eine Frage, zu meinen derzeitigen Projekt.
Ich habe eine Kopierprocedure geschrieben die auch funzt nur sind ein paar Dinge die mich noch stören !
- 1. das event handling
- 2. im eigenen Thread aber wie ?
- 3. der Progressbar funzt nicht richtig warum?
zumal ich mit Threads noch nie was gemacht habe, und mir im moment der richtige Ansatz dazu fehlt.
Ich hoffe das ihr mir da auch wieder weiterhelfen könnt
Code: Alles auswählen
Procedure DatenKopieren(Dummy_copy.s,Move=#False)
If Dummy_copy
result= MessageRequester("Kopieren von Dateien!", "Sollen die Datein Kopiert werden ? "+Chr(10)+"von:"+Quellenfolder+" nach "+Destanationfolder ,#PB_MessageRequester_YesNo)
Else
MessageRequester("Achtung !","Keine Dateien zum kopieren ausgwählt !" ,#PB_MessageRequester_Ok)
EndIf
If result=#PB_MessageRequester_Yes
OpenFortschritt_Anzeige()
DisableWindow(Pure_Commander,1)
SetGadgetAttribute(#Fortschritt,1,#PB_ProgressBar_Minimum)
SetGadgetAttribute(#Fortschritt,Get_listanzahl(Dummy_copy),#PB_ProgressBar_Maximum )
For i=1 To Get_listanzahl(Dummy_copy)
event=WindowEvent()
Fortschritt_Anzeige_Events(event)
Debug Quellenfolder+Get_listeintrag(Dummy_copy,i)+ " "+Destanationfolder+Get_listeintrag(Dummy_copy,i)
;überprüfen ob der Selektierte Eintrag eine File oder Verzeichnis ist
If FileSize(Quellenfolder+Get_listeintrag(Dummy_copy,i))>0 ; wenn eine File dann
If CopyFile(Quellenfolder+Get_listeintrag(Dummy_copy,i) ,Destanationfolder+Get_listeintrag(Dummy_copy,i)) ; wenn Copiervorgang erfolgreich dann
SetGadgetState (#Fortschritt,i)
SetGadgetText (#Kopiertext,Get_listeintrag(Dummy_copy,i))
If Move=1 ;Prüfen ob ausschneiden ausgewählt wurde
DeleteFile(Quellenfolder+Get_listeintrag(Dummy_copy,i))
EndIf
EndIf
ElseIf FileSize(Quellenfolder+Get_listeintrag(Dummy_copy,i))=-2 ; wenn ein Verzeichnis dann
If CopyDirectory(Quellenfolder+Get_listeintrag(Dummy_copy,i),Destanationfolder+Get_listeintrag(Dummy_copy,i),"",#PB_FileSystem_Recursive) ; wenn Copiervorgang erfolgreich dann
SetGadgetState (#Fortschritt,i)
SetGadgetText (#Kopiertext,Get_listeintrag(Dummy_copy,i))
If Move=1 ;Prüfen ob ausschneiden ausgewählt wurde
DeleteDirectory(Quellenfolder+Get_listeintrag(Dummy_copy,i),"",#PB_FileSystem_Recursive)
EndIf
EndIf
EndIf
Next
CloseWindow(Fortschritt_Anzeige)
DisableWindow(Pure_Commander,0)
EndIf
EndProcedure