Sto cercando un modo in Windows per elencare tutti i file in una determinata directory e le sue sottodirectory, ordinate in modo che i file più recenti siano in cima. C'è un modo semplice per farlo? Mi sarei anche accontentato di uno script Perl.
Se sei ancora interessato a una soluzione scritta, ho gettato rapidamente qualcosa che visualizzerà i file da tutte le directory:
#!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"; }
I file vengono visualizzati più recenti al più vecchio, mostrando solo il nome del file. In questo modo è ansible pipelare facilmente l'output di questo script ad un altro strumento di elaborazione senza wherer preoccuparsi di eliminare l'output in eccesso.
Utilizzo: perl find.pl <starting_directory>
Come questo: dir /s /o:-d
Se hai cygwin o simile installato allora find . -type f | xargs ls -tr
find . -type f | xargs ls -tr
find . -type f | xargs ls -tr
farà il trucco. Potete quasi certamente fare la stessa cosa con il powerhell di Microsoft.
Nel caso in cui si utilizza Tutto , basta digitare il path e ordinare per Data modificata e si otterranno tutti i file in questa cartella in quell'ordine, indipendentemente dalla sottodirectory.
Tutto è gratuito, è disponibile una versione porttile.
Se non ti import di codificare (anche se questo prende la questione in un territorio Stack Overflow), allora ci sono le classi di Directory
e File
in C #.
Il metodo GetFiles
ha un sovraccarico che restituirà tutti i nomi di file in tutte le sottodirectory. È quindi ansible eseguire un ciclo su questa list chiamando GetLastWriteTime
per get la data / ora modificata. Memorizzare il nome e l'ora in un dictionary, ordinare all'ora e printingre i nomi dei file.
Ci sono anche le classi DirectoryInfo
e FileInfo
.
Dovrei aver aggiunto che tutta questa funzionalità è disponibile tramite Powershell , quindi non hai accesso ad un IDE completo.