Page 1 sur 1

[R] problème avec FileListToArrayXT

Posté : lun. 22 mars 2010 17:45
par bilbo
Bonjour

J'ai un problème avec un script.

Il est conçu pour copier des fichiers ayant 90 jours se trouvant dans plusieurs répertoires.

J'arrive à copier les fichiers ayant 90 jours, :)
j'arrive à copier tout les fichiers de plusieurs répertoires, :)
mais je n'arrive pas à lier les 2 :(

je n'arrive pas à faire une boucle avec FileListToArrayXT qui contienne des filtres inhérents à la date des fichiers.

Merci d'avance de vos lumières. :idea:

► Afficher le texte

Re: [..] problème avec FileListToArrayXT

Posté : lun. 22 mars 2010 17:50
par Tlem
Il n'existe pour le moment aucun UDF permettant le filtrage sur l'age d'un fichier.

Pour cela, vous avez deux solutions :
1 - Modifier la fonction FileListToArrayXT() afin de rajouter ce filtrage.
2 - A partir du tableau donné par FileListToArrayXT() vous éliminez (du tableau) les plus anciens fichiers. Pour cela, il faut lire le tableau à l'envers et utiliser la fonction _ArrayDelete() pour supprimer les éléments indésirables. ;)

Re: [..] problème avec FileListToArrayXT

Posté : lun. 22 mars 2010 18:08
par bilbo
Merci Tlem,

S'il n'y a pas d'autres alternatives, Je pencherais plutôt pour la première solution car le tableau généré par FileListToArrayXT() dans le second cas contiendrait trop de fichiers et le traitement serait vraiment trop long et trop lourd.

Maintenant reste à trouver une âme charitable qui veux bien me donner un coup de main pour modifier la fonction FileListToArrayXT() .

A moins qu'il y ait un autre moyen d'arriver à mes fins.


A suivre ....

Re: [..] problème avec FileListToArrayXT

Posté : mar. 23 mars 2010 00:26
par Tlem
Le traitement sera pratiquement équivalent dans un cas comme dans l'autre. :wink:
Lors de l'utilisation de FileListToArrayXT(), vous scannez un répertoire à la recherche de fichiers. Mais une fois la recherche faites, vous connaissez les fichiers, donc pas besoin de re-scanner ...

Mais si vous tenez à modifier la fonction FileListToArrayXT(), recherchez toutes les séquences de recherche de fichiers :

Code : Tout sélectionner

$sFile = FileFindNextFile($hSearchFile)
If @error Then ExitLoop
Puis rajouter votre test, puis l'exclusion par age associée à un ContinueLoop() selon le cas.

Re: [..] problème avec FileListToArrayXT

Posté : mar. 23 mars 2010 09:29
par bilbo
Merci Tlem,

suite à vos remarques sur les traitements équivalent, j'ai fait le constat que cela risque d'être trop lourd à faire.
Le répertoire en question contient plus d'un millions de fichiers, repartis sur 1100 répertoires. :shock:
Je n'avais pas estimé jusqu'ici la masse de données à traitées.
Ici, je pense que le tri quotidien des fichiers pour en extraire le j-90 sera beaucoup trop long. :?
Je réfléchi à une autre méthode d'archivage. :roll:

Toutefois, je laisse encore le sujet non résolu en attendant une hypothétique solution. :idea:

DT

Re: [..] problème avec FileListToArrayXT

Posté : mar. 23 mars 2010 14:24
par bilbo
En étudiant de plus près, l'architecture du serveur en question, je me suis aperçu que les fichiers à copier etait seulement repartis sur 10 repertoires bien précis.
J'ai donc réaliser une boucle pour rechercher dans ces repertoires et tout est ok. 8)

Mon problème est donc résolu.

Merci