Copier un fichier

Soyez le premier à donner votre avis sur cette source.

Vue 16 010 fois - Téléchargée 1 138 fois

Description

Voici comment copier un fichier:

j'ai recopié l'aide de geddi mais je l'ai modifié pour le rendre à la portée des novices en vb.

la commande est on ne peut plus simple.
dans votre code inscrivez ceci(plus le module dans le zip)

J'ai fait un module que vous pourrez ajouter à votre projet.

Source / Exemple :


resultat = copier("c:\test.txt","c:\test2.txt") 'dans n'importe quel endroit de votre projet afin de copier un fichier

'Les lignes suivantes dans un module  ( projet/ajouter un module)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Declarations
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

Public Function copier(FROM As String, copie As String)
On Error GoTo erreur
Dim fso, msg
  Set fso = CreateObject("Scripting.FileSystemObject")
  If Not fso.FileExists(FROM) Then 'on verifie si le fichier existe
copier = "Le fichier n'existe pas"
Exit Function
erreur:
copier = "Une erreur c'est produite"
Exit Function
End If

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 = FROM & vbNullChar 'Source path
                .pTo = copie & vbNullChar   'Dest Path
                .fFlags = FOF_NOCONFIRMMKDIR Or FOF_WANTMAPPINGHANDLE 'Flags de Copie
                .fAnyOperationsAborted = 0
                .hNameMappings = 0
                .lpszProgressTitle = vbNullChar
              End With

retval = SHFileOperation(fos)
copier = "OK"
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Conclusion :


le premier parametre entre guillemet est le fichier existant de source et le deuxieme la cible.

La variable resultat contient soit "ok" soit un message d'erreur

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

jeanguillotnoel
Messages postés
7
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
18 septembre 2009
-
Erreur dans le premier message. Je reprends...
fFlags = FOF_NOCONFIRMMKDIR Or FOF_WANTMAPPINGHANDLE

pour :
.fFlags = FOF_NOCONFIRMATION
jeanguillotnoel
Messages postés
7
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
18 septembre 2009
-
Bonjour!
Ceci est ma première intervention sur le site. Je donne une note de 10 à ce code. Je veux donner la réponse à la question Comment éviter de confirmer le remplacement du fichier?
Changez la valeur de :
fFlags=.fFlags = FOF_NOCONFIRMMKDIR Or FOF_WANTMAPPINGHANDLE

pour :
.fFlags = FOF_NOCONFIRMATION
VARACH
Messages postés
225
Date d'inscription
vendredi 14 janvier 2005
Statut
Membre
Dernière intervention
29 septembre 2016
-
10/10

tout simplement : ca marche nikel ..

peut on faire en sorte de ne pas avoir la demande de confirmation en cas de fichier deja present sur la cibe ?
leminot
Messages postés
9
Date d'inscription
mercredi 26 avril 2006
Statut
Membre
Dernière intervention
4 juin 2006
-
comment peut on faire pour forcer la copie d'un fichier dans un rep meme si un fichier du mm nom existe deja?je voudrais pas avoir à cliquer 'remplacer' dans la boite de dialog à chq fois si c'est possible
MouLeT
Messages postés
90
Date d'inscription
samedi 11 octobre 2003
Statut
Membre
Dernière intervention
27 juillet 2009
-
Moi je te met 10/10 =)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.