Déplacer un fichier via la fonction Shell()

cs_Bintz Messages postés 11 Date d'inscription jeudi 15 mai 2003 Statut Membre Dernière intervention 14 novembre 2003 - 22 mai 2003 à 16:13
cs_Bintz Messages postés 11 Date d'inscription jeudi 15 mai 2003 Statut Membre Dernière intervention 14 novembre 2003 - 23 mai 2003 à 17:00
Bonjour,

J'essaie de déplacer des fichiers assez volumineux pour les amener au bon emplacement et avec un nom défini.

J'ai essayé la méthode suivante:

strShell = "xcopy " & tout un tas de variable pour générer le chemin initial et le chemin cible
Shell strShell, vbHide

Puis:

strKill= variables définissant le chemin initial
Kill(strKill)

Le problème c'est que Kill écrase les fichiers avant qu'ils soient entièrement copiés... comment faire attendre la fonction Kill? Y a-t-il l'équivalent de la fonction DOS "move" en VB?

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 mai 2003 à 16:23
Tu peux toujours faire un timer qui teste la présence ou non du fichier copié, et lorsque le fichier est vraiment copié, tu supprime le fichier d'origine...

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
22 mai 2003 à 17:34
Moi j'utiliserai filecopy avec une boucle qui affiche une progress bar.
Et quand la copy est terminé je kill la source!!!
pourquoi se compliqué la vie ???
0
cs_Bintz Messages postés 11 Date d'inscription jeudi 15 mai 2003 Statut Membre Dernière intervention 14 novembre 2003
23 mai 2003 à 09:15
Je ne peux pas faire un timer car les fichiers sont très lourds et le temps de transfert devient donc très aléatoire (je traite en faite des couches géographiques).

Autre chose que j'avais oublié de préciser: je veux transférer en même temps plusieurs fichiers (ayant des extensions différentes mais le même nom: des couches MapInfo), il faudrait donc une syntaxe de la forme "move D:\fichier.* C:\fichier.*" ... Ceci n'étant pas possible avec la fonction Name ou la fonction FileCopy.

J'ai lu des infos sur les objects file system mais ils ne semblent pas disponibles pour mon projet... y a-t-il une référence à activer?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 mai 2003 à 10:30
Oui en effet, pour utiliser le FSO, il faut activer la référence : Menu Projet/Référence. Puis coche l'entrée Microsoft Scripting Runtime.

Bon courage

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bintz Messages postés 11 Date d'inscription jeudi 15 mai 2003 Statut Membre Dernière intervention 14 novembre 2003
23 mai 2003 à 17:00
Merci à tous pour votre aide.
0
Rejoignez-nous