Réponses:
Si vous êtes toujours intéressé par une solution scriptée, j'ai rapidement jeté quelque chose ensemble qui affichera les fichiers de tous les répertoires ensemble:
#!C:/Perl/bin/perl.exe
use File::Find;
my %files = ();
sub process
{
$files{$_} = (stat($_))[9] unless -d $_;
}
find (\&process, $ARGV[0]);
foreach my $key(sort {$files{$b} <=> $files{$a}} keys %files)
{
print "$key\n";
}
Les fichiers sont affichés du plus récent au plus ancien, affichant uniquement le nom du fichier. De cette façon, vous pouvez facilement diriger la sortie de ce script vers un autre outil pour le traitement sans avoir à vous soucier de supprimer la sortie excédentaire.
Usage: perl find.pl <starting_directory>
my $dir = ($#ARGV >= 0 ? $ARGV[0] : '.');
pourraient rencontrer cela): afin qu'il analyse le répertoire actuel si le paramètre de répertoire n'est pas donné, et pour inclure l'heure imprimée:print strftime('%Y-%m-%d %H:%M:%S', localtime((stat($key))[9])) . " $key\n";
$files{$key}
si vous souhaitez l'utiliser strftime
lors de l'impression pour éviter un deuxième appel à stat()
. Si vous prévoyez de le rediriger vers un autre programme, je l'ai également modifié pour afficher le chemin complet des noms de fichiers. Vous pouvez le récupérer ici: pastebin.ca/1797748
Si vous avez installé cygwin ou similaire, alors find . -type f | xargs ls -tr
fera l'affaire. Vous pouvez presque certainement faire de même avec le PowerShell de Microsoft.
Dans le cas où vous utilisez tout , tapez simplement le chemin et triez par date de modification et vous obtiendrez tous les fichiers de ce dossier dans cet ordre, quel que soit le sous-répertoire.
Tout est freeware, une version portable est disponible.
Si le codage ne vous dérange pas (bien que cela pose la question dans le territoire Stack Overflow), il y a les classes Directory
et File
en C #.
La GetFiles
méthode a une surcharge qui renverra tous les noms de fichiers dans tous les sous-répertoires. Vous pouvez ensuite parcourir cette liste en appelant GetLastWriteTime
pour obtenir la date / heure modifiée. Enregistrez le nom et l'heure dans un dictionnaire, triez l'heure et imprimez les noms de fichiers.
Il y a aussi les classes DirectoryInfo
et FileInfo
.
J'aurais dû ajouter que toutes ces fonctionnalités sont disponibles via Powershell , vous n'avez donc pas accès à un IDE complet.
Si vous avez installé quelque chose comme Git Bash ou Cygwin, vous devriez pouvoir utiliser l'une des réponses d'ici: /programming/4561895/how-to-recursively-find-the-latest-modified -fichier dans un répertoire
Celui qui a bien fonctionné pour moi est: find . -type f -printf '%TF %TT %p\n' | sort -r
Vous pouvez également ajouter | head -10
à la fin de cela pour voir uniquement les 10 plus récents, par exemple.