Ne pas ecraser un fichiers lors de la copie mais l'incrementer de 1 ? [Résolu]

Signaler
Messages postés
21
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
21 novembre 2012
-
Messages postés
21
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
21 novembre 2012
-
Bonjour ,

J'ai un petit soucis lors d'un transfert de fichiers ...
Ce que je voudrais faire au final s'est selectionner plusieurs source
ex : c\toto ; c\tonton ;c:\tata
et qu'il me recopie tout les fichiers dans c:\test
Mais qu'il ne m'ecrase pas les fichiers portant le meme nom , qu'il me les incremente de 1.
ex : test.txt duplique ==> test1.txt
Mon code actuel donne :

Private Sub Commande2_Click()
' déclare la source du fichier a copier
Dim source As String
source = Texte1 'texte1 correspond a une textbox
' déclare la destination du fichier a copier
Dim destination As String
destination = Texte2
'appel la fonction de copie du fichier
Call copyfile(Texte1, Texte2)


End Sub

j'ai vu la fonction getunique sur le forum mais j'avoue ne pas comprendre comment m'en servir et si ca peu etre utile pour mon probleme .

Merci d'avance

7 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
umm ok, beh tu copies le code dans un module standart (.bas)

et par exemple tu vas copier c:\machin.txt vers c:\temp\monfichier.txt, tu vas faire

copyfile "c:\machin.txt", getunique("c:\temp\monfichier.txt")

donc s'il y a déjà un "monfichier.txt", "machin.txt" sera alors nommé "machin(1).txt" (dans "c:\temp")

la fonction getunique ne fait que te donner un nom de fichier  dispo

ps : c'est du VB6, attention à tes classements de rubrique/topic)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
5
Pour faire ceci, le plus simple est sans doute de ne pas faire une copie de répertoire à répertoire, mais de fichier à fichier dans le répertoire cible.

Tu listes tes fichiers de ton répertoire source.
Tu fais une boucle qui va défiler chaque fichier et avec l'instruction Dir, tu vas vérifier si ce fichier existe déjà dans ton répertoire cible.
S'il existe, tu copies le fichier en donnant comme nom ce que tu veux (incrémentation, etc ...), sinon, tu copies directement.

Molenn
Messages postés
21
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
21 novembre 2012

Ton idée me semble bonne mais étant debutant en vb j'avoue ne pas savoir comment faire tout ce que tu me dit :/
est-ce que je pourrais avoir un exemple de code afin que je puisse  l'appliquer  ?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
salut,

faut chercher un peu avant de poser une question Flow8002...

la réponse ici
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
21
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
21 novembre 2012

Oui oui je l'ai dit plus haut j'ai trouvé une fonction qui me parait bien obscur pour mes connaissances en vb  et je voulais des precisions pour mon probleme .. ;)
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
nommé en monfichier(1).txt ** pardon ^^

re-ps : et pour la suite quand tu as des soucis avec une source, le mieux est tout de même de poser la question à l'auteur ;)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
21
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
21 novembre 2012

Ah merci beaucoup !

Ca parait si simple maintenant que tu me le dit :'( .
Il est vrai que j'aurais dû poser directement la question a l'auteur
Merci encore
@+