Odpowiedzi:
Jeśli nadal jesteś zainteresowany rozwiązaniem skryptowym, szybko zrzuciłem coś, co wyświetli pliki ze wszystkich katalogów razem:
#!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";
}
Pliki są wyświetlane od najnowszych do najstarszych, pokazując tylko nazwę pliku. W ten sposób możesz łatwo przesłać dane wyjściowe tego skryptu do innego narzędzia do przetwarzania bez martwienia się o usunięcie nadmiaru danych wyjściowych.
Stosowanie: perl find.pl <starting_directory>
my $dir = ($#ARGV >= 0 ? $ARGV[0] : '.');
aby skanował bieżący katalog, jeśli parametr katalogu nie zostanie podany, i uwzględniał wydrukowany czas:print strftime('%Y-%m-%d %H:%M:%S', localtime((stat($key))[9])) . " $key\n";
$files{$key}
jeśli chcesz go użyć strftime
podczas drukowania, aby uniknąć drugiego połączenia z stat()
. Jeśli planujesz przesłać go do innego programu, zmodyfikowałem go tak, aby wyświetlał pełną ścieżkę do nazw plików. Możesz to pobrać tutaj: pastebin.ca/1797748
Jeśli masz zainstalowany program Cygwin lub podobny, find . -type f | xargs ls -tr
zrobi to samo. Prawie na pewno możesz zrobić podobnie z PowerShellem Microsoft.
Jeśli korzystasz z Wszystko , po prostu wpisz ścieżkę i sortuj według Data modyfikacji, a otrzymasz wszystkie pliki w tym folderze w tej kolejności, niezależnie od podkatalogu.
Wszystko jest darmowe, dostępna jest wersja przenośna.
Jeśli nie przeszkadza kodowania (choć trwa to pytanie na terytorium stosu przepełnieniem) wtedy nie Directory
i File
klas w języku C #.
GetFiles
Metoda ma przeciążenia, która zwróci wszystkie nazwy plików we wszystkich podkatalogów. Następnie możesz przejrzeć tę listę, wywołując GetLastWriteTime
zmodyfikowaną datę / godzinę. Zapisz nazwę i czas w słowniku, posortuj według czasu i wydrukuj nazwy plików.
Są też klasy DirectoryInfo
i FileInfo
.
Powinienem dodać, że cała ta funkcjonalność jest dostępna przez Powershell , więc nie masz dostępu do pełnego IDE.
Jeśli masz coś takiego jak Git Bash lub Cygwin, powinieneś być w stanie skorzystać z jednej z odpowiedzi tutaj: /programming/4561895/how-to-recursively-find-the-latest-modified -plik-w-katalogu
Dla mnie dobrze działał: find . -type f -printf '%TF %TT %p\n' | sort -r
Możesz także dodać | head -10
na końcu tego, aby zobaczyć tylko 10 najnowszych, powiedzmy.