Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

File::Find et ordre des fichiers

2 réponses
Avatar
amaguk
Bonjour,

Voilà, j'utilise un petit script pour faire un backup de fichiers
séquentiels.
Donc, voilà, j'utilise File::Find pour ne sélectionner que les fichiers
souhaités. Or, je me rend compte à l'usage que File::Find ne prend pas
les fichiers dans l'ordre lexicographique, mais dans un autre ordre ! Je
voudrais donc savoir quel est cet ordre mystérieux et s'il y a moyen de
demander à File::Find d'utiliser l'ordre lexicographique.
C'est assez important dans mon script. Je peux bien entendu m'en passer,
et faire différemment, mais ce serait quand même plus simple avec un
usage direct de File::Find !

Un grand merci d'avance

Manu

2 réponses

Avatar
Raymond.Schmit
Le Wed, 2 Jun 2004 23:16:57 +0200, amaguk
écrivait:

Bonjour,

Voilà, j'utilise un petit script pour faire un backup de fichiers
séquentiels.
Donc, voilà, j'utilise File::Find pour ne sélectionner que les fichiers
souhaités. Or, je me rend compte à l'usage que File::Find ne prend pas
les fichiers dans l'ordre lexicographique, mais dans un autre ordre ! Je
voudrais donc savoir quel est cet ordre mystérieux et s'il y a moyen de
demander à File::Find d'utiliser l'ordre lexicographique.
C'est assez important dans mon script. Je peux bien entendu m'en passer,
et faire différemment, mais ce serait quand même plus simple avec un
usage direct de File::Find !


Je ne comprends pas grand chose dans la doc de perl(c'est fort
nébuleux pour moi), mais ceci devrait te convenir (extrait de la doc
sur file::find
preprocess

The value should be a code reference. This code reference is used to
preprocess a directory; it is called after readdir() but before the
loop that calls the wanted() function. It is called with a list of
strings and is expected to return a list of strings. The code can be
used to sort the strings alphabetically, numerically, or to filter out
directory entries based on their name alone.

Avatar
Paul GABORIT
À (at) Wed, 2 Jun 2004 23:16:57 +0200,
amaguk écrivait (wrote):
Or, je me rend compte à l'usage que File::Find ne prend pas les fichiers
dans l'ordre lexicographique, mais dans un autre ordre ! Je voudrais donc
savoir quel est cet ordre mystérieux et s'il y a moyen de demander à
File::Find d'utiliser l'ordre lexicographique.


Cet ordre "mystérieux" est celui dans lequel les fichiers sont enregistrés
dans le répertoire que vous explorez. Cet ordre dépend du filesystem utilisé
et de l'ordre dans lequel les fichiers ont été créés et détruits.

Le paramètre 'preprocess' de 'find' devrait vous convenir.

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/&gt;
Perl en français - <http://www.enstimac.fr/Perl/&gt;