Rechercher un fichier sur plusieurs lecteurs et le recopier si trouve sur un rep [Résolu]

Messages postés
3
Date d'inscription
samedi 13 mai 2006
Statut
Membre
Dernière intervention
2 avril 2009
- - Dernière réponse : cs_stef79
Messages postés
3
Date d'inscription
samedi 13 mai 2006
Statut
Membre
Dernière intervention
2 avril 2009
- 2 avril 2009 à 15:48
Bonjour les développeurs, je recherche un code ou au moins quelque chose s'approchant de mon besoin.

Je souhaite après avoir renseigné une combox ( mon fichier "toto.bak")
rechercher à travers plusieurs lecteurs (de c:\ à z:\)
si mon fichier existe sur ces lecteurs et dans les différents répertoires présents sur ces lecteurs.

suite à cela, si mon fichier existe, je souhaite le recopier dans un répertoire déterminé
( h:\temporaire)
si il n'existe pas, afficher "fichier non trouvé"

pouvez vous m'aider s'il vous plait.

STEF79
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
3
Merci
Bonjour,

La chose est certes possible, mais :
1) selon la capacité de stockage de ta machine (de chacun des volumes), tu risques fort de trouver le temps plutôt long (à peu près la même durée que celle à partir de "rechercher" depuis l'explorateur !!!
2) "recopîer" si trouvé ? Ben ...oui, mais : quid s'il en trouve plusieurs, avec le même nom, dans des volumes et/ou répertoires distincts ?

Ta demande est assez curieuse.
Dans quelles circonstances et pourquoi cherches-tu à faire çà ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jmf0
Messages postés
3
Date d'inscription
samedi 13 mai 2006
Statut
Membre
Dernière intervention
2 avril 2009
0
Merci
Bonjour jmf0,
merci pour ta réponse,
je cherche à faire cela car je me suis rendu compte que certains fichiers disparaissaient de temps en temps de mon répertoire de stockage.
je souhaiterais donc que lorsqu'une personne a besoin d'un fichier, qu'elle renseigne un champ avec le nom souhaité.
lorsque ce fichier est trouvé, le mettre sur un répertoire de travail et garder une copie de l'original à l'endroit initial.
pour info:
(un seul lecteur - 15 répertoires avec sous certains 40 sous répertoires)
les fichiers dans le répertoire de stockage sont en lecture seule.
seuls les noms "toto.extension" seront admis et transférables, et il n'existe qu'un seul nom identique (garanti).
certaines personnes ne savent pas se servir de l'explorateur windows et la seule souris qu'ils connaissent c'est Mickey. bonjour le malaise.
c'est pour cela qu'un petit programme serait le bienvenu.

 

STEF79
Commenter la réponse de cs_stef79
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
ceci te permet de trouver un fichier dans une arborescence :
Private Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As String, ByVal InputPathName As String, ByVal OutputPathBuffer As String) As Long
Private Const MAX_PATH = 260



Private Sub Command1_Click()
 Dim repertoire As String, fichier As String
 repertoire = "d:\monoutil"
 fichier = "essai.txt"
 MsgBox trouve(repertoire, fichier)
End Sub




Private Function trouve(R As String, F As String) As String
  Dim T As String, resu As Long
  T = String(MAX_PATH, 0)
  resu = SearchTreeForFile(R, F, T)
  If resu <> 0 Then
    trouve = Left$(T, InStr(1, T, Chr$(0)) - 1): Exit Function
  End If
End Function





Si tu n'as qu'un seul lecteur, tu donnes ce lecteur comme départ (repertoire = "c:", par exemple).
Tu as ainsi dans trouve, le chemin complet du fichier en cause...
A toi de le copier où tu veux (s'il est copiable, hein ...) ... et çà, quand même, je pense que tu sais le faire !
Commenter la réponse de jmf0
Messages postés
3
Date d'inscription
samedi 13 mai 2006
Statut
Membre
Dernière intervention
2 avril 2009
0
Merci
merci jmf0 suis en train de développer la suite

STEF79
Commenter la réponse de cs_stef79