begin process at 2010 03 22 13:59:26
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > SHFILEOPERATION :: COPIER/SUPPRIMER DES FICHIERS

SHFILEOPERATION :: COPIER/SUPPRIMER DES FICHIERS


 Information sur la source

Note :
7,14 / 10 - par 7 personnes
7,14 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :couper, copier, coller, supprimer, fichier Niveau :Expert Date de création :07/07/2000 Vu / téléchargé :8 886 / 408

Auteur : GEDDi

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Declaration et Utilisation fonctionnelle de SHFileOperation : ou comment utiliser cette fonction puissante de Windows pour copier/deplacer des fichiers/repertoires

Source

  • 'Delarations
  • Public Const FO_COPY = &H2
  • Public Const FO_DELETE = &H3
  • Public Const FO_MOVE = &H1
  • Public Const FO_RENAME = &H4
  • Public Const FOF_CONFIRMMOUSE = &H2
  • Public Const FOF_ALLOWUNDO = &H40
  • Public Const FOF_FILESONLY = &H80
  • Public Const FOF_MULTIDESTFILES = &H1
  • Public Const FOF_NOCONFIRMATION = &H10
  • Public Const FOF_NOCONFIRMMKDIR = &H200
  • Public Const FOF_NO_CONNECTED_ELEMENTS = &H1000
  • Public Const FOF_NOCOPYSECURITYATTRIBS = &H800
  • Public Const FOF_NOERRORUI = &H400
  • Public Const FOF_RENAMEONCOLLISION = &H8
  • Public Const FOF_SILENT = &H4
  • Public Const FOF_SIMPLEPROGRESS = &H100
  • Public Const FOF_WANTMAPPINGHANDLE = &H20
  • Public Const FOF_WANTNUKEWARNING = &H2000
  • Public Const FOF_NORECURSION = &H1000 '// don't recurse into directories.
  • Public Type SHFILEOPSTRUCT
  • hWnd As Long
  • wFunc As Long
  • pFrom As String
  • pTo As String
  • fFlags As Integer
  • fAnyOperationsAborted As Long
  • hNameMappings As Long
  • lpszProgressTitle As String
  • End Type
  • Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" _
  • (Dest As Any, Sourc As Any, ByVal Length As Long)
  • Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" _
  • (lpFileOp As Any) As Long
  • 'Main program example
  • Sub Main()
  • Dim fos As SHFILEOPSTRUCT ' structure to pass to the function
  • Dim retval As Long ' return value
  • With fos
  • .hWnd = 0 'ou Me.hWnd si on a une Feuille par exemple
  • .wFunc = FO_COPY 'Action == Copie
  • .pFrom = "c:\toto" & vbNullChar 'Source path
  • .pTo = "c:\temp" & vbNullChar 'Dest Path
  • .fFlags = FOF_NOCONFIRMMKDIR Or FOF_WANTMAPPINGHANDLE 'Flags de Copie
  • .fAnyOperationsAborted = 0
  • .hNameMappings = 0
  • .lpszProgressTitle = vbNullChar
  • End With
  • retval = SHFileOperation(fos)
  • End Sub
'Delarations
Public Const FO_COPY = &H2
Public Const FO_DELETE = &H3
Public Const FO_MOVE = &H1
Public Const FO_RENAME = &H4

Public Const FOF_CONFIRMMOUSE = &H2
Public Const FOF_ALLOWUNDO = &H40
Public Const FOF_FILESONLY = &H80
Public Const FOF_MULTIDESTFILES = &H1
Public Const FOF_NOCONFIRMATION = &H10
Public Const FOF_NOCONFIRMMKDIR = &H200
Public Const FOF_NO_CONNECTED_ELEMENTS = &H1000
Public Const FOF_NOCOPYSECURITYATTRIBS = &H800
Public Const FOF_NOERRORUI = &H400
Public Const FOF_RENAMEONCOLLISION = &H8
Public Const FOF_SILENT = &H4
Public Const FOF_SIMPLEPROGRESS = &H100
Public Const FOF_WANTMAPPINGHANDLE = &H20
Public Const FOF_WANTNUKEWARNING = &H2000
Public Const FOF_NORECURSION = &H1000               '// don't recurse into directories.

Public Type SHFILEOPSTRUCT
    hWnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Long
    hNameMappings As Long
    lpszProgressTitle As String
End Type

Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" _
    (Dest As Any, Sourc As Any, ByVal Length As Long)

Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" _
    (lpFileOp As Any) As Long

'Main program example
Sub Main()
Dim fos As SHFILEOPSTRUCT       ' structure to pass to the function
Dim retval As Long              ' return value

             With fos
                .hWnd = 0                       'ou Me.hWnd si on a une Feuille par exemple
                .wFunc = FO_COPY                'Action == Copie
                .pFrom = "c:\toto" & vbNullChar 'Source path
                .pTo = "c:\temp" & vbNullChar   'Dest Path
                .fFlags = FOF_NOCONFIRMMKDIR Or FOF_WANTMAPPINGHANDLE 'Flags de Copie
                .fAnyOperationsAborted = 0
                .hNameMappings = 0
                .lpszProgressTitle = vbNullChar
              End With

retval = SHFileOperation(fos)

End Sub 

 Conclusion

A noter l'emploi de Any dans (lpFileOp As Any) qui evite de planter VB :)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

COMMENT METTRE ET EXTRAIRE UN FICHIER DANS UNE RESSOURCES (R...
COMMENT FERMER UN PROCESSUS (DOS OU AUTRE) DEPUIS VOTRE APPL...
VERIFICATION DE L'EXISTENCE D'UN RÉPERTOIRE
ALGORITHME DE TRI À BULLES

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION DE L' API GOOGLE YOUTUBE RECHERCHER ET LIRE DES ... par tresorsdevie
Source avec Zip Source avec une capture Source .NET (Dotnet) FAIRE LA DIFFÉRENCE ENTRE UNE ADRESSE EMAIL QUI EXISTE D'UNE... par lesinfosdugeek
ENVOYER UN MESSAGE SUR SON COMPTE TWITTER par lesinfosdugeek
Source avec Zip Source avec une capture TROUVER LES CLÉS DE REGISTRE QUI CHANGENT par Flocreate
Source avec Zip IP_PUBLIQUE_INTERNETGETCONNECTEDSTATE par marco62118

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) [VB 2008] COMPARER DEUX RÉPERTOIRES par deuxmains
SUPPRIMER UN RACCOURCI DU BUREAU ET/OU DU MENU DÉMARRER par sergiooi
Source avec Zip PETIT UTILITAIRE POUR COPIER-COLLER FACILEMENT DES CHEMINS D... par RicoNuch
COUPER, COPIER, COLLER DANS UNE RICHTEXTBOX par JCLK
COUPER, COPIER, COLLER DANS UNE TEXTBOX par JCLK

Commentaires et avis

Commentaire de joro le 26/05/2003 09:01:38

Excellent fonctionnement sous windows 9x.
Aurez-tu le même, mais pour windows XP, S.T.P.

Commentaire de yoannwyffels le 25/09/2004 15:28:20

Superbe source, fonctionne parfaitement sous Windows XP (je ne vois pas pkoi joro demande le code pour XP vu que celui-ci fonctionne déjà ?)

Commentaire de joro le 27/09/2004 09:33:35

Alors que sur Win9x "SHFileOperation" fonctionne super bien, j'ai constaté que cette API sur XP provoquait une erreur lors de la suppression de fichiers.

Commentaire de AltaFred le 15/11/2004 11:29:10

J'ai le même problème que joro, lorque mon appli, compilée sous VB5 appelle "SHFileOperation" pour copier des fichiers, cela provoque une erreur XP avec rapport d'erreur, alors que tout fonctionne tres bien sous W95 et W98.

Commentaire de GEDDi le 11/09/2007 13:57:57

Bonjour,

AltaFred >> cela provoque une erreur XP avec rapport d'erreur, alors que tout fonctionne tres bien sous W95 et W98.

Remplacer ceci :
.pFrom = "c:\toto" & vbNullChar 'Source path
.pTo = "c:\temp" & vbNullChar   'Dest Path

par :
.pFrom = "c:\toto" & vbNullChar & vbNullChar 'Source path
.pTo = "c:\temp" & vbNullChar & vbNullChar   'Dest Path

Si cela est ok, alors tant mieux :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Comment copier et coller un fichier sous vb 3.0 [ par Cyber ] Je voudrais savoir comment copier et coller un fichier d'un doosier a un autre.Merci d'avance!!!!! Couper, Copier, Coller ????? [ par Brodeur ] Bonjour, je me demandais en passant , mais comment qu'on fait pour faire un copier coller. Ainsi, je voudrais selectionner une partie de mon texte, a Copier-Coller-Couper [ par DEL ] ========================================je voudrai savoir comment faire dans un textbox pour permettre de faire copier, couper, coller avec les raccou Copier/Coller un fichier binaire d'un ListView vers le presse-papier [ par Schum ] Je cherche à faire ce qui est marqué dans le titre.Je ne vois pas comment... HELP ME Copier/Coller un fichier binaire d'un ListView vers le presse-papier [ par Schum ] Le titre résume tout...Comment copier un(des) fichier vers le presse-papier, pour pouvoir les coller dans l'explorateur de Windows?????!!!HELP ME URGE copier/coller/renommer un fichier [ par kidpigeyre ] Comment faire pour copier/coller/renommer un fichier?Merci. Comment copier un fichier et le coller dans un dossier ? [ par Chricl ] Voila, je dispose d'un fichier Qui à pour nom xxx.cnt dans un certain dossier, et je dispose du même fichier dans un autre dossier.Le premier fichier Copier/Coller l'intégralité d'un fichier text [ par patou1000 ] bonjour, je voudrais savoir comment peut on copier l'intégralité (tous les caractères sauts de ligne et tabulations) d'un fichier texte (txt) dans le Couper, Copier, Coller [ par Unrealll ] J'aimerais offrire la possibilité de faire des couper, copier et coller dans mon application (MDI). J'ai trouvé un bout de code fonctionnel pour un pe


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,638 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales