[VB 6] Copie de dossier et sous dossiers

Copie de dossier et sous dossiers [VB 6] - Programmation

Marsh Posté le 18-01-2001 à 17:26:18    

Comment faire sous VB6 pour copier un rep et ses sous repertoires... Je connais la commande Filecopy (copie d'un fichier à la fois) mais je ne voudrait pas que mon programme passe deux heures à calculer l'arborescence du truc...ss
y me faudrait un truc genre un équivalent de XCOPY mais dans VB... pasque le pg doit tourner sur du W9x et du 2000... pis cé pas au même endroit... pis de toute façon ca fait un peu porc d'utiliser Xcopy, même si ca me suffisait jusque la...

 

Reply

Marsh Posté le 18-01-2001 à 17:26:18   

Reply

Marsh Posté le 18-01-2001 à 20:12:58    

Passe par FSO
 
Après c'est tout simple...

 

Reply

Marsh Posté le 19-01-2001 à 08:05:27    

FSO... mais encore...
Gé pas retrouvé l'aide de VB alors cé un peu flou...

Reply

Marsh Posté le 19-01-2001 à 08:05:51    

auf est ! ton entre tiens ?

Reply

Marsh Posté le 19-01-2001 à 10:43:36    

Il y a plein de solution.
 
1) Utilise FSO (FileSystemObject) ( Le plus simple)
 
2) Tu peux utiliser les API ( Le plus performant...)
 
3) Tu peux passer par un bat en passant les parametres ( mais ce n'est pas beau...)
 
4)Tu peux faire une fonction recursive sur les dossier avec FileCopy ( c'est lourd....)

 

Reply

Marsh Posté le 19-01-2001 à 11:09:50    

sdel71 ! :D
 
Arf !! J'avais pas fait gaffe hier ! :D
 
Faut dire que je m'attendais pas à te trouver ici ! :D
 
Bah, attends, je poste un gros truc là :D (forcément, entre copins...)

 

Reply

Marsh Posté le 19-01-2001 à 11:25:27    

Private Sub MoveFld(path_from, path_to)
ss Dim fso, fldr
ss Set fso = CreateObject("Scripting.FileSystemObject" )
ss Set fldr = fso.GetFolder(path_from)
ss fldr.Move (path_to)
End Sub
 
 
Le répertoire "path_from" est déplacé dans le répertoire "path_to"
 
Bien mettre le "" ou "/" à la fin du nom de répertoire...
 
Ensuite, gros avantage de FSO : tu peux ta servir du réseau !!! (et même pas besoin de monter de lecteur)

 

Reply

Marsh Posté le 19-01-2001 à 11:27:17    

RalphXML a écrit a écrit :

Il y a plein de solution.
 
1) Utilise FSO (FileSystemObject) ( Le plus simple)
 
2) Tu peux utiliser les API ( Le plus performant...)

 





C'est la même chose... Si tu déclare fso comme je le fait, tu passes pas pas les DLL de VB mais par les API système...
 
(il ne faut pas inclure d'objet dans le form... juste déclarer comme ça)

 

Reply

Marsh Posté le 19-01-2001 à 11:43:55    

Si tu fais un CreateObject tu instancie l'objet COM donc tu passes par l'objet qui ne fait ni plus ni moins que fournir une interface simple d'accès à l'API. Cependant cela ne revient pas exactement à la même chose qu'appeler directement l'API depuis VB puisqu'il y a tout l'overhead de l'instanciation COM en plus. Je me trompe ?

Reply

Marsh Posté le 19-01-2001 à 11:52:11    

Guru > Bah... A ce niveau je peux as répondre... Mais tout ce que je sais c'est qu'avec ce système :
 
1) Je peux déplacer 2 Go de donnéer par le réseau en 2 lignes de code
2) C'est aussi rapide qu'avec l'explorateur
3) Le programme n'est pas freezé...

 

Reply

Marsh Posté le 19-01-2001 à 11:52:11   

Reply

Marsh Posté le 19-01-2001 à 11:54:26    

En fait dans un programme j'hésitais a l'utiliser j'avais peur que ca rame... alors dans ce cas je vais plus hésiter merci pour l'info charmante demoiselle.ss:jap:

Reply

Marsh Posté le 19-01-2001 à 11:56:05    

Ca ne revient pas au meme car l'utilisation de FileSystemObject n'est possible qu'avec l'ensemble des dll de scripting.
 
Or on peut utiliser les API dournit avec shell32.dll et non scrun32.dll pour copier des repertoire ou des fichier. En plus, les performances ne sont pas du tout les memes ( il y avait un article dans la revue programmez mais c'est vieux)
 
De plus, je signale que le scripting est apparu avec le SP2 de IE4 et que pour des postes plus vieux ( ca existe Wim95 + IE4.01)
on peut utiliser les API si on ne veut pas installer les dll de scripting.
 
A+
 
http://support.microsoft.com/suppo [...] CH&SPR=VBB

 

Reply

Marsh Posté le 19-01-2001 à 12:08:21    

Guru a écrit a écrit :

En fait dans un programme j'hésitais a l'utiliser j'avais peur que ca rame... alors dans ce cas je vais plus hésiter merci pour l'info charmante demoiselle.  :jap:

 





Chuis MagicBuzz, c'est à dire un MEC :D
 
RalphXML > Bah, je pense que tu dis des choses vraies (je ne me suis jamais vraiment penché là dessus... je suis développeur Web, donc l'optimisation des perfs sur le serveur, on s'en bas les joyeuses vu la lenteur des cnx et la "simplicité" des traitements...)
Mais en tout cas, j'ai déjà fait des petits softs en VB dont un qui permet de renommer des fichiers suivant une expression générique avec un nom générique, avec possibilité de les déplacer dans un autre répertoires, en conservant où non l'arbiressance des sous-répertoires... Et quand je passe la moulinette sur mes 3 Go d'images XXX, ben ça met moins de 5 minutes à se tapper tout les fichers... (recherche + renomage + déplacement) A raison de 15 Ko par fichiers en moyenne, je peux te dire que je trouve ça plutôt rapide... (un simple DIR sous MS-DOS avec recherche dans tout les sous-répertoires, suivant une expression régulière et création d'u rapport dans un fichier texte - pour éviter la lenteur dûe à l'affichage - est bien plus lent...)

 

Reply

Marsh Posté le 19-01-2001 à 12:12:56    

Lucile> Oups je savais pas désolé pour la confusion... enfin merci quand même pour l'exemple de cas réel. :jap:

Reply

Marsh Posté le 21-01-2001 à 19:27:21    

Merci Lucile/magic...
JEU T'AIMEUH :love:
 
ca marche pis vite en plus...

 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed