MoveFile - MoveDirectory

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

MoveFile - MoveDirectory

Message par Le Soldat Inconnu »

Salut,

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
vous pouvez faire une lib avec tailbite ou attendre que je le mette sur mon site ;) mais en ce moment, j'ai la flemme
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]