COPIER, DÉPLACER, SUPPRIMER DES FICHIERS, DOSSIERS VIA MODULE
thierrydelepine
Messages postés521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 2008
-
13 nov. 2004 à 22:45
cs_sergiooi
Messages postés53Date d'inscriptionvendredi 6 octobre 2006StatutMembreDernière intervention 7 octobre 2009
-
17 avril 2007 à 17:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_sergiooi
Messages postés53Date d'inscriptionvendredi 6 octobre 2006StatutMembreDernière intervention 7 octobre 2009 17 avril 2007 à 17:52
tu met dans ton module:
public sub CopierDossier (Origine as string, Destination as string)
dim fs
set fs = createObject("Scripting,FileSystemObject")
fs.copyFolder Origine, Destination
set fs = nohing
end sub
et tu appel la fonction sur ta feuille:
fs.copierDossier "C:\NVIDIA", "D:\NVIDIA"
Tu n'as pas besoin de modifier(dim fs as new fs)
Moi en tout cas ca marche #1
sebkill25
Messages postés10Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention19 juin 2010 17 avril 2007 à 13:47
Je suis pas arrivé a le faire fonctionné... et la syntaxe n'est pas la même
Si le résultat est le même je préfère une sytaxe plus propre...
Et je l'execute pas depuis un module, j'en vois pas l'intérêt.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 avril 2007 à 13:44
pas compris ton commentaire...
c'est EXACTEMENT ce qui est fait là :
Public Sub CopierDossier(Origine As String, Destination As String)
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFolder Origine, Destination
Set fs = Nothing
End Sub
sebkill25
Messages postés10Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention19 juin 2010 17 avril 2007 à 13:33
Beaucoup plus simple pour copier un répertoire :
Dim fso As FileSystemObject
Set fso = New FileSystemObject
fso.CopyFolder "c:\sources", "c:\oldsources", True
Set fso = Nothing
Où "c:\sources" et "c:\oldsources" peuvent être remplacés par des variables qui contienent un chemin sélectionné par exemple.
;)
sebkill25
Messages postés10Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention19 juin 2010 17 avril 2007 à 12:34
Salut,
Voilà c'est exactement le code que je cherché mais j'arrive pas à le faire fonctionné.
J'ai créer le module et j'ai copier tout le code source dedans. (Il se nomme "FS" comme dans la source).
Ensuite le le clik d'un bouton j'ai inscrit :
Dim FS As New FS
FS.CopierDossier(c:\NVIDIA, d:\NVIDIA)
---------------------------------------
Erreur de compilation :
Attendu : Séparateur de liste ou )
---------------------------------------
J'ai donc modifié :
Dim FS As New FS
FS.CopierDossier("c:\NVIDIA", "d:\NVIDIA")
---------------------------------------
Erreur de compilation :
Attendu : =
---------------------------------------
Alors là je comprend pas ....
J'espère avoir été clair.
Merçi de votre aide
cs_sergiooi
Messages postés53Date d'inscriptionvendredi 6 octobre 2006StatutMembreDernière intervention 7 octobre 2009 16 avril 2007 à 05:30
Salut Mika1000, je me suis dit exactement la meme chose et j'avais deja essayé et sans succes (désolé de ne pas l'avoir mentionné avant). Il semblerais que c'est le dossier lui meme (???) car j'ai pu faire supprimer tout les fichiers et applic. avec ton module et ca a marché mais pas pour ce dossier vide. Mais quand j'ai supprimé le dossier qui contenais mon dossier problématique, ca a marché nickel... bizzard...
Mais merci bien d'avoir pris le temps de me répondre et aplus!
cs_Mika1000
Messages postés4Date d'inscriptionjeudi 20 novembre 2003StatutMembreDernière intervention16 avril 2007 16 avril 2007 à 00:18
Salut Sergiooi.
Je pense qu'un fichier se trouvant dans le dossier "PsxFin" est en cours d'utilisation au moment où tu veux supprimer le dossier. D'où l'accès refusé ! Essaye tout simplement de supprimer ce dossier toi même pour vérifier.
@+
cs_sergiooi
Messages postés53Date d'inscriptionvendredi 6 octobre 2006StatutMembreDernière intervention 7 octobre 2009 14 avril 2007 à 22:31
Salut Mika1000! merci pour cette source tres utile. Tout fonctionne mais à part un. celui là:
J'ai mis ton module dans mon projet qui copie et supprime des fichiers mais celui là m'envoie l'erreur #70
acces denied... Tout les autres se suppriment mais pas lui POURQUOOOOIII???
Voilà et encore merci. j'espère que tu sauras me répondre.
a+
Sepi62500
Messages postés34Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention24 août 2011 27 févr. 2007 à 09:21
Salut,
je trouve ta source bien utile.
La dernière fois j'ai dû créer un prog pour supprimer un fichier.
ta source aurait bien été utile.
difooltball
Messages postés8Date d'inscriptionsamedi 29 juillet 2006StatutMembreDernière intervention 9 août 2006 8 août 2006 à 17:51
bof mais c pas mal =)
NOTE : 7/10
mareluc
Messages postés17Date d'inscriptionjeudi 11 septembre 2003StatutMembreDernière intervention10 novembre 2005 27 avril 2006 à 10:20
Dans ta "form_load" il suffit de faire appel aux subroutines avec par exemple:
Private Sub Form_Load()
Dim Origine As String
Dim Dest As String
Call CopierDossier(Origine, Dest)
en définissant Origine et Destination (C:\...\....)
Nyouki
Messages postés2Date d'inscriptionsamedi 18 février 2006StatutMembreDernière intervention27 avril 2006 27 avril 2006 à 09:43
Salut a tous je suis débutant VB et je n'arrive pas à utiliser ce module, je l'ai copier/coller dans un nouveau modules que j'ai choisi d'appeler : options.
Ensuite dans ma form je rentre :
options.CopierDossier("C:\files", "C:\Documents and Settings\mon dossier\Desktop\projet Bis").
au moment ou je clique pour visualiser mon projet, ca me mets "erreur de synataxe"
Quelqu'un peut m'aider?
Merci!
mareluc
Messages postés17Date d'inscriptionjeudi 11 septembre 2003StatutMembreDernière intervention10 novembre 2005 22 févr. 2006 à 10:58
Tu dis ça pour cdrique?
Car je travaille en vb6, et tous ces codes marchent, sauf que je n'ai pas celui qui traite les attributs des dossiers.
ludovicanceaux
Messages postés440Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention 6 mai 2010 21 févr. 2006 à 22:47
mais ce que vous êtes en train de faire c du vb????????????
car le code ki est sur cette page c'est du vb.net c pô pareil!!!!
mareluc
Messages postés17Date d'inscriptionjeudi 11 septembre 2003StatutMembreDernière intervention10 novembre 2005 21 févr. 2006 à 20:14
Mika1000, merci d'avoir essayé.
Effectivement, GetAttr et SetAttr marchent avec les fichiers, mais pas avec les dossiers ??
cs_Mika1000
Messages postés4Date d'inscriptionjeudi 20 novembre 2003StatutMembreDernière intervention16 avril 2007 21 févr. 2006 à 19:15
Mareluc, j'ai fait des essais avec GetAttr et SetAttr pour les attributs mais c'est pas très concluant (erreur quand le dossier est vide, etc...) A approfondir...
cdrique
Messages postés6Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention21 février 2006 21 févr. 2006 à 18:03
Bonjours à tous!
J'interviens dans votre discut mais ce code m'interresse beaucoup.
Je suis novice en VB et j'essaie d'employer ce module mais ça ne marche pas.
Je veux copier un dossier dans un autre, avec l'aide d'un bouton.
J'ai donc utilisé dans un module :
Public Sub CopierDossier(Origine As String, Destination As String)
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFolder Origine, Destination
Set fs = Nothing
End Sub
et dans mon projet, j'ai inscrit :
Public Sub Command1_Click()
Call CopierDossier("C:\TOTO" As String, "D:\TOTO" As String)
End Sub
Ca ne marche pas et ça indique erreur de syntaxe.
Pkoi??
Une petite réponse serai la bienvenue...
Cdrique
mareluc
Messages postés17Date d'inscriptionjeudi 11 septembre 2003StatutMembreDernière intervention10 novembre 2005 21 févr. 2006 à 17:42
Ben, fichier cachée, lecture seule, archive et éventuellement date de création.
Enfin ceux qui apparaissent quand on fait "Propriétés"
ludovicanceaux
Messages postés440Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention 6 mai 2010 21 févr. 2006 à 11:58
k'est ce que tu entend par attribut??????????
mareluc
Messages postés17Date d'inscriptionjeudi 11 septembre 2003StatutMembreDernière intervention10 novembre 2005 21 févr. 2006 à 10:02
Juste une question,après je mets 10/10.
Comment fait-on pour conserver les attributs d'un dossier que l'on veut copier?
got3
Messages postés1Date d'inscriptionmercredi 10 août 2005StatutMembreDernière intervention12 août 2005 12 août 2005 à 19:55
Merci
J'ai un peu modifié le code :
fs.CopyFile App.Path & "\7za.exe", "c:\7za.exe"
ce qui permet de copier un fichier spécifique, ici 7zip en ligne de commande du dossier source vers la racine du c:
ludovicanceaux
Messages postés440Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention 6 mai 2010 6 avril 2005 à 17:26
en fait c un truc simple tu a juste a placer ce module ds ton projet vb et d'appeler ce module en faisant par exemple :
dim MyModule as new Mymodule
myModule.CopierDossier(c:\Dossier d'origine, d:\Dossier de destination)
etc.... pour toute les procédure du module
ex:
- CopierDossier
- CopierFichier
- CréerDossier
- DéplacerDossier
- DéplacerFichier
- DéplacerFichier
- SupprimerFicher
ou alors tu pe très bien te passer du module et inclure direct le code ss le bouton de ton choix
slt je début en vb et pourrais tu mettre un exemple d'utilisation des des fonction, au moin pour la premiere merci +
ludovicanceaux
Messages postés440Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention 6 mai 2010 4 févr. 2005 à 04:05
Superbe ta source j'ai pu l'introduire ds la mienne en VB.net ss pb merci 10/10 pour ca franchement super!!!!!!!!!!!!!!!!!!!!!!
ludovicanceaux
Messages postés440Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention 6 mai 2010 4 févr. 2005 à 03:57
dis moi ke ve dire MKDir & RMDir en fait je n'ai jamais touché o vb
je suis juste en vb.net mai etant donné ke la fonction kill fonctionne pe etre que ces 2 là foonctionne ossi.
dis moi tu pourrai donner un exemple d'utilisation de chaque fonction stp!!!!!!!!!
merci
thierrydelepine
Messages postés521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 20086 13 nov. 2004 à 22:45
ton code a un gros gros gros probleme.
tu cree des objets et tu ne les detruis jamais.
donc si j'utilise tes fonctions dans un programmes qui fait plein de manip de fichiers pendant des jours, j'explose la memoire windows et donc crash machine.
si tu fais un :
Set fs = CreateObject("Scripting.FileSystemObject")
il faut toujours faire un :
Set fs = nothing pour finir.
en plus il existe deja des fonctions toutes faites sous VB simple d'utilisations et optimisés:
MKDIR,RMDIR,KILL
l'utilisation d'objets Scripting.FileSystemObject incombe une version IE5.0 minimum d'installé sur le PC
17 avril 2007 à 17:52
public sub CopierDossier (Origine as string, Destination as string)
dim fs
set fs = createObject("Scripting,FileSystemObject")
fs.copyFolder Origine, Destination
set fs = nohing
end sub
et tu appel la fonction sur ta feuille:
fs.copierDossier "C:\NVIDIA", "D:\NVIDIA"
Tu n'as pas besoin de modifier(dim fs as new fs)
Moi en tout cas ca marche #1
17 avril 2007 à 13:47
Si le résultat est le même je préfère une sytaxe plus propre...
Et je l'execute pas depuis un module, j'en vois pas l'intérêt.
17 avril 2007 à 13:44
c'est EXACTEMENT ce qui est fait là :
Public Sub CopierDossier(Origine As String, Destination As String)
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFolder Origine, Destination
Set fs = Nothing
End Sub
17 avril 2007 à 13:33
Dim fso As FileSystemObject
Set fso = New FileSystemObject
fso.CopyFolder "c:\sources", "c:\oldsources", True
Set fso = Nothing
Où "c:\sources" et "c:\oldsources" peuvent être remplacés par des variables qui contienent un chemin sélectionné par exemple.
;)
17 avril 2007 à 12:34
Voilà c'est exactement le code que je cherché mais j'arrive pas à le faire fonctionné.
J'ai créer le module et j'ai copier tout le code source dedans. (Il se nomme "FS" comme dans la source).
Ensuite le le clik d'un bouton j'ai inscrit :
Dim FS As New FS
FS.CopierDossier(c:\NVIDIA, d:\NVIDIA)
---------------------------------------
Erreur de compilation :
Attendu : Séparateur de liste ou )
---------------------------------------
J'ai donc modifié :
Dim FS As New FS
FS.CopierDossier("c:\NVIDIA", "d:\NVIDIA")
---------------------------------------
Erreur de compilation :
Attendu : =
---------------------------------------
Alors là je comprend pas ....
J'espère avoir été clair.
Merçi de votre aide
16 avril 2007 à 05:30
Mais merci bien d'avoir pris le temps de me répondre et aplus!
16 avril 2007 à 00:18
Je pense qu'un fichier se trouvant dans le dossier "PsxFin" est en cours d'utilisation au moment où tu veux supprimer le dossier. D'où l'accès refusé ! Essaye tout simplement de supprimer ce dossier toi même pour vérifier.
@+
14 avril 2007 à 22:31
fs.SupprimerDossier ("C:\Program Files\ÉmulInstall v1.0\psOne\PsxFin")
J'ai mis ton module dans mon projet qui copie et supprime des fichiers mais celui là m'envoie l'erreur #70
acces denied... Tout les autres se suppriment mais pas lui POURQUOOOOIII???
Voilà et encore merci. j'espère que tu sauras me répondre.
a+
27 févr. 2007 à 09:21
je trouve ta source bien utile.
La dernière fois j'ai dû créer un prog pour supprimer un fichier.
ta source aurait bien été utile.
8 août 2006 à 17:51
NOTE : 7/10
27 avril 2006 à 10:20
Private Sub Form_Load()
Dim Origine As String
Dim Dest As String
Call CopierDossier(Origine, Dest)
en définissant Origine et Destination (C:\...\....)
27 avril 2006 à 09:43
Ensuite dans ma form je rentre :
options.CopierDossier("C:\files", "C:\Documents and Settings\mon dossier\Desktop\projet Bis").
au moment ou je clique pour visualiser mon projet, ca me mets "erreur de synataxe"
Quelqu'un peut m'aider?
Merci!
22 févr. 2006 à 10:58
Car je travaille en vb6, et tous ces codes marchent, sauf que je n'ai pas celui qui traite les attributs des dossiers.
21 févr. 2006 à 22:47
car le code ki est sur cette page c'est du vb.net c pô pareil!!!!
21 févr. 2006 à 20:14
Effectivement, GetAttr et SetAttr marchent avec les fichiers, mais pas avec les dossiers ??
21 févr. 2006 à 19:15
21 févr. 2006 à 18:03
J'interviens dans votre discut mais ce code m'interresse beaucoup.
Je suis novice en VB et j'essaie d'employer ce module mais ça ne marche pas.
Je veux copier un dossier dans un autre, avec l'aide d'un bouton.
J'ai donc utilisé dans un module :
Public Sub CopierDossier(Origine As String, Destination As String)
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFolder Origine, Destination
Set fs = Nothing
End Sub
et dans mon projet, j'ai inscrit :
Public Sub Command1_Click()
Call CopierDossier("C:\TOTO" As String, "D:\TOTO" As String)
End Sub
Ca ne marche pas et ça indique erreur de syntaxe.
Pkoi??
Une petite réponse serai la bienvenue...
Cdrique
21 févr. 2006 à 17:42
Enfin ceux qui apparaissent quand on fait "Propriétés"
21 févr. 2006 à 11:58
21 févr. 2006 à 10:02
Comment fait-on pour conserver les attributs d'un dossier que l'on veut copier?
12 août 2005 à 19:55
J'ai un peu modifié le code :
fs.CopyFile App.Path & "\7za.exe", "c:\7za.exe"
ce qui permet de copier un fichier spécifique, ici 7zip en ligne de commande du dossier source vers la racine du c:
7 avril 2005 à 10:03
6 avril 2005 à 17:26
dim MyModule as new Mymodule
myModule.CopierDossier(c:\Dossier d'origine, d:\Dossier de destination)
etc.... pour toute les procédure du module
ex:
- CopierDossier
- CopierFichier
- CréerDossier
- DéplacerDossier
- DéplacerFichier
- DéplacerFichier
- SupprimerFicher
ou alors tu pe très bien te passer du module et inclure direct le code ss le bouton de ton choix
6 avril 2005 à 16:25
4 févr. 2005 à 04:05
4 févr. 2005 à 03:57
je suis juste en vb.net mai etant donné ke la fonction kill fonctionne pe etre que ces 2 là foonctionne ossi.
dis moi tu pourrai donner un exemple d'utilisation de chaque fonction stp!!!!!!!!!
merci
13 nov. 2004 à 22:45
tu cree des objets et tu ne les detruis jamais.
donc si j'utilise tes fonctions dans un programmes qui fait plein de manip de fichiers pendant des jours, j'explose la memoire windows et donc crash machine.
si tu fais un :
Set fs = CreateObject("Scripting.FileSystemObject")
il faut toujours faire un :
Set fs = nothing pour finir.
en plus il existe deja des fonctions toutes faites sous VB simple d'utilisations et optimisés:
MKDIR,RMDIR,KILL
l'utilisation d'objets Scripting.FileSystemObject incombe une version IE5.0 minimum d'installé sur le PC