Page 1 sur 1
[R] Rechercher un fichier, puis le copier
Posté : dim. 30 oct. 2011 12:37
par Kevzi
Bonjour,
Etant dans une sérieuse impasse, je demande de l'aide aux personne plus expérimenté que moi. Je souhaiterais faire un petit script qui puisse me faire ça comme je vais l'expliquer:
Code : Tout sélectionner
On recherche dans le dossier "x" le fichier "y". si le fichier "y" existe, alors on le copie.
Je pensais que c’était simple de faire ça , mais franchement, je sèche.
Si quelqu'un à une idée... sa serait sympa de la partager
Merci d'avance pour vos réponses.
Re: [..] Rechercher un fichier, puis le copier
Posté : dim. 30 oct. 2011 12:42
par Tlem
C'est pourtant quelque chose de plutôt basique a moins de souhaiter faire une recherche récursive (sous dossier).
Si votre recherche est simple, alors utilisez
FileExist() pour savoir si le fichier existe puis
FileCopy() pour le copier ailleurs ...
C'est quelque chose qui a été vu à plusieurs reprises. Donc le moteur de recherche du forum n’a pas été utilisé ou a été mal utilisé !!!

Re: [..] Rechercher un fichier, puis le copier
Posté : dim. 30 oct. 2011 12:42
par mikell
Code : Tout sélectionner
$file = dossier_x\fichier_y
If FileExists($file) Then FileCopy($file, @desktopdir & "\fichier_y")
Re: [..] Rechercher un fichier, puis le copier
Posté : dim. 30 oct. 2011 12:43
par mikell

la simultanéité existe, je l'ai rencontrée
Re: [..] Rechercher un fichier, puis le copier
Posté : dim. 30 oct. 2011 12:56
par Kevzi
Ce que j'ai oublié de dire, ce que les dossiers sont différents dans chaque pc.
Re: [..] Rechercher un fichier, puis le copier
Posté : dim. 30 oct. 2011 13:13
par mikell
Alors il faut faire une recherche récursive du type
dossier_constant_sur_chaque_pc\dossier_variable\fichier
Code : Tout sélectionner
$sRoot = "dossier constant"
$FileList = _FileListToArray($sRoot, '*', 2)
If Not @error Then
For $i = 1 To $FileList[0] ; cherche dans le dossier variable
If FileExists($FileList[$i] & "\mon fichier") Then FileCopy($FileList[$i] & "\mon fichier", @desktopdir & "\monfichier")
Next
EndIf
ou avec RecFileListToArray, puis traiter les éléments de l'array obtenue
Re: [..] Rechercher un fichier, puis le copier
Posté : dim. 30 oct. 2011 22:03
par Kevzi
J'ai pas trop compris ton exemple. je dois mettre ou le lien où se situe le dossier , ou il y a le fichier ?
Re: [..] Rechercher un fichier, puis le copier
Posté : dim. 30 oct. 2011 23:47
par mikell
Ben, tu me dis que que le dossier "x" où se trouve le fichier_y est différent dans chaque pc
Il faut donc trouver le dossier situé en amont de ce dossier "x" et qui sera commun à tous ces pc, et faire partir la recherche de là, exemple :
sur pc 1 : Mes Documents\dossier "x"_tagada\fichier_y
sur pc 2 : Mes Documents\dossier "x"_tsointsoin\fichier_y
Donc faut lancer la recherche récursive à partir de Mes Documents (dossier racine commun aux 2 pc)
Re: [..] Rechercher un fichier, puis le copier
Posté : lun. 31 oct. 2011 11:34
par Kevzi
J'ai compris ton exemple, mais sa ne marche pas. je pense que c'est à cause du nombre de dossier il y a un macro "@AppDataDir" plus 3 dossiers. ce que je viens de citer , c'est les dossiers constants à chaque pc.
Re: [..] Rechercher un fichier, puis le copier
Posté : lun. 31 oct. 2011 12:34
par TopXm
Hello,
Du style je copie le prefs.js de fireFox quelque part mais vu que le dossier parent de prefs.js a un nom aléatoire c'est moins simple ?
Du coup tu n'as peut-être pas besoin de récursivité
Sinon un truc du style ?
► Afficher le texteSauver prefs.js
Code : Tout sélectionner
#include <array.au3>
#Include <File.au3>
Local const $FolderFix = @AppDataDir & '\Mozilla\Firefox\Profiles'
Local const $FileName = 'prefs.js'
local $AllFolders = _FileListToArray($FolderFix, "*", 2)
For $I = 1 To $AllFolders[0]
If FileExists($FolderFix & '\' & $AllFolders[$I] & '\' & $FileName) Then
; on copie le fichier où l'on veut
; et on sort au besoin de la boucle
EndIf
Next
NB : il est bien évident que dans le cas du prefs.js, passer par la lecture du profiles.ini serait bien plus propre

Re: [..] Rechercher un fichier, puis le copier
Posté : lun. 31 oct. 2011 12:51
par Kevzi
votre technique marche parfaitement. Merci

.
j'ai une question d’ailleurs. J'ai besoin de copier le fichier "signon" pour les mots de passe. est-ce qu'il n'y a besoin que de ça. En faite, je veux faire un script qui me permet de copier ses mot de passes firefox sur n'importe quel pc.
Re: [R] Rechercher un fichier, puis le copier
Posté : lun. 31 oct. 2011 13:47
par TopXm
En effet le fichier signons.sqlite devrait suffire, mais je n'en mettrai pas mes ongles à couper.
Le plus simple étant de faire la copie à la mimine d'une machine à l'autre voir si cela suffit
NB : il existe un plugin sympa sous FF pour gérer les SQLITE :
https://addons.mozilla.org/fr/firefox/a ... e-manager/
Re: [R] Rechercher un fichier, puis le copier
Posté : lun. 31 oct. 2011 14:40
par Kevzi
Pouvez-vous me dire comment l'utiliser ? car j'essaye d'ouvrir le fichier sqlite avec firfox, mais je n'arrive pas à l'ouvrir.
PS: c'est bon j'ai réussi. encore merci
Re: [R] Rechercher un fichier, puis le copier
Posté : lun. 31 oct. 2011 15:55
par TopXm
Tu as installé l'extension proposée au dessus ?
Le format SQLITE c'est une base de données donc il faut l'ouvrir avec un outil qui va bien.