Jawaban:
Jika Anda masih tertarik dengan solusi skrip, saya dengan cepat melemparkan sesuatu yang akan menampilkan file dari semua direktori bersama-sama:
#!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";
}
File ditampilkan terbaru ke terlama, hanya menampilkan nama file. Dengan cara ini Anda dapat dengan mudah menyalurkan output dari skrip ini ke alat lain untuk diproses tanpa harus khawatir tentang membuang kelebihan output.
Pemakaian: perl find.pl <starting_directory>
my $dir = ($#ARGV >= 0 ? $ARGV[0] : '.');
sehingga akan memindai direktori saat ini jika parameter direktori tidak diberikan, dan untuk memasukkan waktu yang dicetak:print strftime('%Y-%m-%d %H:%M:%S', localtime((stat($key))[9])) . " $key\n";
$files{$key}
jika Anda ingin menggunakannya strftime
saat mencetak untuk menghindari panggilan kedua stat()
. Jika Anda berencana untuk memipakannya ke program lain, saya juga memodifikasinya untuk menampilkan path lengkap dari nama file. Anda dapat mengambilnya di sini: pastebin.ca/1797748
Jika Anda memiliki cygwin atau sejenisnya diinstal maka find . -type f | xargs ls -tr
akan melakukan trik. Anda hampir pasti dapat melakukan hal serupa dengan Microsoft PowerShell.
Jika Anda menggunakan Semuanya , cukup ketik lintasan dan urutkan berdasarkan Tanggal Dimodifikasi dan Anda akan mendapatkan semua file dalam folder ini dalam urutan itu, terlepas dari subdirektori.
Semuanya freeware, versi portabel tersedia.
Jika Anda tidak keberatan coding (meskipun ini membawa pertanyaan ke wilayah Stack Overflow) maka ada kelas Directory
dan File
di C #.
The GetFiles
metode memiliki kelebihan yang akan mengembalikan semua nama file di semua subdirektori. Anda kemudian dapat mengulang daftar ini, menelepon GetLastWriteTime
untuk mendapatkan tanggal / waktu yang dimodifikasi. Menyimpan nama dan waktu dalam kamus, mengurutkan waktu dan mencetak nama file.
Ada juga kelas DirectoryInfo
dan FileInfo
.
Saya seharusnya menambahkan bahwa semua fungsi ini tersedia melalui Powershell , jadi Anda tidak memiliki akses ke IDE penuh.
Jika Anda memiliki sesuatu seperti Git Bash atau Cygwin yang diinstal, Anda seharusnya dapat menggunakan salah satu jawaban dari sini: /programming/4561895/how-to-recursively-find-the-latest-modified -file-in-a-direktori
Salah satu yang bekerja dengan baik untuk saya adalah: find . -type f -printf '%TF %TT %p\n' | sort -r
Anda juga dapat menambahkan | head -10
hingga akhir untuk melihat 10 yang terbaru, katakanlah.