Déplacer, copier, supprimer (vers la corbeille) des fichiers/dossiers


Propriétés du code


Date de création : 19/04/2007 à 18:22:00
0 Commentaire(s)
  violent_ken

 

Présentation


Plusieurs fonctions basiques permettant le déplacement, la copie, et la corbeillation (suppression vers la corbeille), en affichant les fenêtres Windows. Tout est basé sur une seule API.

Possibilité de passer plusieurs fichiers en paramètre en les séparant par un vbNullChar.

@+

 

Code


Option Explicit


'=======================================================
'CONSTANTES
'=======================================================
Private Const FO_DELETE                    As Long = &H3
Private Const FOF_ALLOWUNDO                As Long = &H40
Private Const FO_COPY                      As Long = &H2&
Private Const FO_MOVE                      As Long = &H1&
Private Const FOF_SIMPLEPROGRESS            As Long = &H100&


'=======================================================
'TYPE
'=======================================================
Private Type Fichier    'utilisé pour envoyer vers la corbeille
    hWnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Boolean
    hNameMappings As Long
    lpszProgressTitle As String
End Type


'=======================================================
'API
'=======================================================
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As Fichier) As Long


'=======================================================
'copie un fichier/dossier
'=======================================================
Public Function CopyFileOrFolder(ByVal sFileOrFolder As String, _
    ByVal sDestination As String) As Long
   
Dim sFileToCopy As Fichier

    'définit l'objet Fichier
    With sFileToCopy
        .wFunc = FO_COPY
        .pFrom = sFileOrFolder
        .pTo = sDestination
        .fFlags = FOF_ALLOWUNDO And FOF_SIMPLEPROGRESS
    End With
   
    'procède à la copie
    CopyFileOrFolder = SHFileOperation(sFileToCopy)
End Function

'=======================================================
'déplace vers la corbeille un fichier/dossier
'=======================================================
Public Function MoveToTrash(ByVal sFileOrFolder As String) As Long
Dim sFileToDelete As Fichier

    'définit l'objet Fichier
    With sFileToDelete
        .wFunc = FO_DELETE
        .pFrom = sFileOrFolder
        .fFlags = FOF_ALLOWUNDO
    End With
   
    'procède à la suppression
    MoveToTrash = SHFileOperation(sFileToDelete)
End Function

'=======================================================
'déplace un fichier ou un dossier
'=======================================================
Public Function MoveFileOrFolder(ByVal sFileOrFolder As String, _
    ByVal sDestination As String) As Long
   
Dim sFileToMove As Fichier

    'définit l'objet Fichier
    With sFileToMove
        .wFunc = FO_MOVE
        .pFrom = sFileOrFolder
        .pTo = sDestination
        .fFlags = FOF_ALLOWUNDO And FOF_SIMPLEPROGRESS
    End With
   
    'procède au déplacement
    MoveFileOrFolder = SHFileOperation(sFileToMove)
End Function


 

Historique


Voici l'historique des modifications de ce code :
Le 19/04/2007 par violent_ken : Modifié le nom des variables

 
 

Modifier le code

Seul les admins et l'auteur du code lui même peuvent modifier ce code.

 

Commentaires


Ajouter un commentaire


Vous devez être connecté pour pouvoir poster un commentaire.

 
 

Valid HTML 4.01 Transitional Valid CSS

Site web de Vb System Library version 1.3
Developpement et design réalisé par : Matthieu Napoli (MadMatt)
© 2007 Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
Temps d'execution de la page : 0.009 s
www.mnapoli.fr