OVH Cloud OVH Cloud

Copie de fichiers en vb6

2 réponses
Avatar
JPR
Bonjour,

Pouvez-vous m'indiquez la meilleure procédure pour effectuer la copie d'un
ou de plusieurs fichiers ?

J'aimerais que la copie soit entierement achevée avant de passer à une
partie du prog.

Merci d'avance

2 réponses

Avatar
Yves
'constantes d'opérations
Public Const FO_COPY = &H2 'on copie le fichier
Public Const FO_DELETE = &H3 'on supprime le fichier (à la corbeille ou non)
Public Const FO_MOVE = &H1 'on déplace le fichier
Public Const FO_RENAME = &H4 'on renomme le fichier

'constantes comment se fait l'opération
Public Const FOF_ALLOWUNDO = &H40 'permet l'annulation de l'opération
en cours
Public Const FOF_FILESONLY = &H80 ' si il y a des *.*,
l'opération se fait uniquement sur les fichiers
Public Const FOF_MULTIDESTFILES = &H1
Public Const FOF_NOCONFIRMATION = &H10 ' pas de message de
confirmation (ex : suppression d'un fichier exe)
Public Const FOF_NOCONFIRMMKDIR = &H200 ' pas de message si un
nouveau répertoire doit être crée
Public Const FOF_RENAMEONCOLLISION = &H8 'renomme si le fichier existe
(ex : copie de toto.exe)
Public Const FOF_SILENT = &H4 ' pas de boite de
dialogue apparente
Public Const FOF_SIMPLEPROGRESS = &H100 ' boite de dialogue sans
le nom du fichier
Public Const FOF_WANTMAPPINGHANDLE = &H20 ' renseigne
hNameMappings si un 'renommage' a eu lieu

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

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 ' titre de la boite si FOF_SIMPLEPROGRESS
End Type



If CopyFile(BrowseFolder & File1, strChemin & "" & File) Then




Private Function CopyFile(sFileName As String, sDestination As String,
Optional lngFlags As Long) As Boolean

Dim tSHFileOp As SHFILEOPSTRUCT, lngRep As Long

On Error GoTo err_CopyFile

With tSHFileOp

.wFunc = FO_COPY
.pFrom = sFileName
.pTo = sDestination

If Not IsMissing(lngFlags) Then .fFlags = lngFlags

End With

lngRep = SHFileOperation(tSHFileOp)
CopyFile = (lngRep = 0) 'retourne si ca a reussi ou non

Exit_CopyFile:
Screen.MousePointer = vbNormal
Exit Function

err_CopyFile:
strTemp = "CopyFile: " & "Feuille frmPhoto"
intRep = Message_Erreur(Err, Error$, strTemp)
Resume Exit_CopyFile
Resume

End Function


J'espère que sa va t'aider


Yves Kelley
Courriel :


"JPR" a écrit dans le message de
news:42fa4e11$0$3132$
Bonjour,

Pouvez-vous m'indiquez la meilleure procédure pour effectuer la copie d'un
ou de plusieurs fichiers ?

J'aimerais que la copie soit entierement achevée avant de passer à une
partie du prog.

Merci d'avance




Avatar
JPR
Merci beaucoup pour ta réponse, c'est exactement ce que je voulais savoir
....


"Yves" a écrit dans le message de news:
#
'constantes d'opérations
Public Const FO_COPY = &H2 'on copie le fichier
Public Const FO_DELETE = &H3 'on supprime le fichier (à la corbeille ou


non)
Public Const FO_MOVE = &H1 'on déplace le fichier
Public Const FO_RENAME = &H4 'on renomme le fichier

'constantes comment se fait l'opération
Public Const FOF_ALLOWUNDO = &H40 'permet l'annulation de l'opération
en cours
Public Const FOF_FILESONLY = &H80 ' si il y a des *.*,
l'opération se fait uniquement sur les fichiers
Public Const FOF_MULTIDESTFILES = &H1
Public Const FOF_NOCONFIRMATION = &H10 ' pas de message de
confirmation (ex : suppression d'un fichier exe)
Public Const FOF_NOCONFIRMMKDIR = &H200 ' pas de message si un
nouveau répertoire doit être crée
Public Const FOF_RENAMEONCOLLISION = &H8 'renomme si le fichier


existe
(ex : copie de toto.exe)
Public Const FOF_SILENT = &H4 ' pas de boite de
dialogue apparente
Public Const FOF_SIMPLEPROGRESS = &H100 ' boite de dialogue


sans
le nom du fichier
Public Const FOF_WANTMAPPINGHANDLE = &H20 ' renseigne
hNameMappings si un 'renommage' a eu lieu

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

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 ' titre de la boite si FOF_SIMPLEPROGRESS
End Type



If CopyFile(BrowseFolder & File1, strChemin & "" & File) Then




Private Function CopyFile(sFileName As String, sDestination As String,
Optional lngFlags As Long) As Boolean

Dim tSHFileOp As SHFILEOPSTRUCT, lngRep As Long

On Error GoTo err_CopyFile

With tSHFileOp

.wFunc = FO_COPY
.pFrom = sFileName
.pTo = sDestination

If Not IsMissing(lngFlags) Then .fFlags = lngFlags

End With

lngRep = SHFileOperation(tSHFileOp)
CopyFile = (lngRep = 0) 'retourne si ca a reussi ou non

Exit_CopyFile:
Screen.MousePointer = vbNormal
Exit Function

err_CopyFile:
strTemp = "CopyFile: " & "Feuille frmPhoto"
intRep = Message_Erreur(Err, Error$, strTemp)
Resume Exit_CopyFile
Resume

End Function


J'espère que sa va t'aider


Yves Kelley
Courriel :


"JPR" a écrit dans le message de
news:42fa4e11$0$3132$
> Bonjour,
>
> Pouvez-vous m'indiquez la meilleure procédure pour effectuer la copie


d'un
> ou de plusieurs fichiers ?
>
> J'aimerais que la copie soit entierement achevée avant de passer à une
> partie du prog.
>
> Merci d'avance
>
>