OVH Cloud OVH Cloud

Copie fiable de répertoires en réseau

9 réponses
Avatar
HD
Bonjour,

Ayant des répertoires en réseau à copier, j'ai voulut copier ces répertoires
par FSO car cette méthode devait être plus fiable pour les répertoires en
réseau... Mais mon problème est que la copie ou la suppression d'un
répertoire comportant un fichier en lecture seul plante systèmatiquement :(

Merci d'avance pour votre aide.
--
@+
HD

9 réponses

Avatar
François Picalausa
Bonjour/soir,

tu peux essayer de l'exécuter en tant qu'opération du shell:
http://faq.vb.free.fr/index.php?question5

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"HD" a écrit dans le message de
news:OuR%
Bonjour,

Ayant des répertoires en réseau à copier, j'ai voulut copier ces
répertoires par FSO car cette méthode devait être plus fiable pour
les répertoires en réseau... Mais mon problème est que la copie ou la
suppression d'un répertoire comportant un fichier en lecture seul
plante systèmatiquement :(

Merci d'avance pour votre aide.


Avatar
HD
ça ne fonctionne pas... j'ai un plantage sur la ligne avec .hWnd = Me.hWnd
car Me n'est pas définit...

Petite précision... J'utilise le VBA Excel.

With FileOper
.hWnd = Me.hWnd
.wFunc = FO_COPY
.pFrom = "C:Tmp3 Dossier" & vbNullChar & "C:I386" & vbNullChar &
vbNullChar
.pTo = "C:Tmp3 Dossier bis" & vbNullChar & vbNullChar
.fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO
End With

A quoi correspond le "C:I386" ?
--
@+
HD
Avatar
François Picalausa
Bonjour/soir,

Sous VBA, tu ne peut pas retrouver d'hwnd.
Tu peux essayer de mettre ce paramètre à 0
En ce qui concerne c:I386, il s'agit d'un second dossier.
Les dossiers sont séparés par vbNullChar. La liste se termine par un double
vbNullChar.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"HD" a écrit dans le message de
news:bvqrl5$hb5$
ça ne fonctionne pas... j'ai un plantage sur la ligne avec .hWnd > Me.hWnd car Me n'est pas définit...

Petite précision... J'utilise le VBA Excel.

With FileOper
.hWnd = Me.hWnd
.wFunc = FO_COPY
.pFrom = "C:Tmp3 Dossier" & vbNullChar & "C:I386" &
vbNullChar & vbNullChar
.pTo = "C:Tmp3 Dossier bis" & vbNullChar & vbNullChar
.fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO
End With

A quoi correspond le "C:I386" ?


Avatar
HD
> En ce qui concerne c:I386, il s'agit
d'un second dossier.



J'aurais pensé que le répertoire à copier est dans .pFrom et la destiantion
est .pTo

On pourrait donc copier directement 2 répertoires dans un seul ? Comme dans
l'exemple du site:

.pFrom = "C:Tmp" & vbNullChar & "C:I386" &
vbNullChar & vbNullChar
.pTo = "C:Tmp2" & vbNullChar & vbNullChar



--
@+
HD
Avatar
HD
> Sous VBA, tu ne peut pas retrouver d'hwnd.
Tu peux essayer de mettre ce paramètre à 0


IMPECABLE !!! ça marche... et même avec des fichiers en lecture seul
(contrairement à FSO).

J'ai mis:
With FileOper
.hWnd = 0
.wFunc = FO_COPY
.pFrom = "C:Tmp3 Dossier" & vbNullChar & vbNullChar
.pTo = "C:Tmp3 Dossier bis" & vbNullChar & vbNullChar
.fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO
End With




Et ça roule...

Un grand MERCI à toi François !!! Je vais même jeter un oeil sur les autres
fonctions de ce site intéressant...

--
@+
HD
Avatar
François Picalausa
Bonjour/soir,

"HD" a écrit dans le message de
news:
J'aurais pensé que le répertoire à copier est dans .pFrom et la
destiantion est .pTo

On pourrait donc copier directement 2 répertoires dans un seul ?



Répète après moi:
c'est bien le shell!
;-)
Et bonne visite des autres fonctions de la FAQ :-)

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
Avatar
HD
Encore un ch'ti problème... Le script demande confirmation lors de la
suppression d'un répertoire. De plus il fait apparaître un message de
reconfirmation si le répertoire comporte des fichiers en lecture seul...
Comment enlever ces messages?

--
@+
HD
Avatar
François Picalausa
Bonjour/Soir,

le fFlags est là pour ça.
si tu y ajoute un Or FOF_NOCONFIRMATION, ça devrait fonctionner.
Si tu souhaite que l'utilisateur ne puisse pas annuler, il faut supprimer
FOF_ALLOWUNDO.
Et plus généralment, ces flags sont expliqués sur
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/structures/shfileopstruct.asp

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"HD" a écrit dans le message de
news:%
Encore un ch'ti problème... Le script demande confirmation lors de la
suppression d'un répertoire. De plus il fait apparaître un message de
reconfirmation si le répertoire comporte des fichiers en lecture
seul... Comment enlever ces messages?


Avatar
HD
> le fFlags est là pour ça.


Merci ça marche.
--
@+
HD