MoveFile - MoveDirectory
Publié : ven. 04/juin/2004 22:45
Salut,
2 procedures que vous pouvez compiler en lib pour permettre de déplacer des fichiers ou dossiers
vous pouvez faire une lib avec tailbite ou attendre que je le mette sur mon site
mais en ce moment, j'ai la flemme
2 procedures que vous pouvez compiler en lib pour permettre de déplacer des fichiers ou dossiers
Code : Tout sélectionner
ProcedureDLL.l MoveFile(FichierSource$, FichierDestination$) ; Déplacer un fichier
; FichierSource$ = Fichier source
; FichierDestination$ = Fichier de destination
ProcedureReturn MoveFileEx_(FichierSource$, FichierDestination$, #MOVEFILE_REPLACE_EXISTING | #MOVEFILE_COPY_ALLOWED)
EndProcedure
ProcedureDLL.l MoveDirectory(DossierSource$, DossierDestination$, Filtre$, Recursif.l) ; Déplacer un dossier
; DossierSource$ = Dossier source
; DossierDestination$ = Dossier de destination
; Filtre$ = Permet de sélectionner quels types de fichiers doivent être retenus
; Recursif = 1 pour prendre en comptes les sous-dossiers, 0 sinon
Protected Type.l, Name.s
If Right(DossierSource$, 1) <> "\"
DossierSource$ = DossierSource$ + "\"
EndIf
If Right(DossierDestination$, 1) <> "\"
DossierDestination$ = DossierDestination$ + "\"
EndIf
CreateDirectory(DossierDestination$)
If ExamineDirectory(0, DossierSource$, Filtre$)
Repeat
Type.l = NextDirectoryEntry()
Name.s = DirectoryEntryName()
If Type = 1
Erreur = MoveFile(DossierSource$ + Name, DossierDestination$ + Name)
If Erreur = 0
ProcedureReturn 0
EndIf
ElseIf Type = 2 And Name <> "." And Name <> ".." And Recursif
Erreur = MoveDirectory(DossierSource$ + Name, DossierDestination$ + Name, Filtre$, Recursif.l)
If Erreur = 0
ProcedureReturn 0
EndIf
EndIf
Until Type = 0
DeleteDirectory(DossierSource$, "*.*", #PB_FileSystem_Force | #PB_FileSystem_Recursive)
Else
ProcedureReturn 0
EndIf
EndProcedure
