У нас есть система здесь, которая недавно имела отказ жесткого диска. Я смог использовать программное обеспечение восстановления для получения большинства файлов от него, но это не смогло получить имена папок по большей части. Вместо этого это вывело больше всего все (приблизительно 200 000 файлов!) в одну папку. Это - смерть для файловой системы Windows.
Кто-либо может рекомендовать пользе (предпочтительно свободный) программа автоматически отсортировать эти файлы в новые папки?
В этом случае файлы по крайней мере уже сгруппированы типом. Я думал к виду или именем или датой создания/изменять, и затем назовите.
Зависит от того, как Вы хотите отсортировать их. Они все - различные типы? Командная строка очень удобна для этого.
пример:
C:\>mkdir JPEGS writtendocs spreadsheets C:\>cd huge_folder C:\huge_folder\>move *.jpg ../JPEGS C:\huge_folder\>move *.doc ../writtendocs C:\huge_folder\>move *.xls ../spreadsheets
Существует свободный графический инструмент для выполнения подобных операций, соответственно названного Вида Файла, который может помочь Вам вид именем файла, возрастом и размером:
Бельведер от редактора Lifehacker мог бы быть полезным.
Используйте дружественный интерфейс Бельведера для создания усовершенствованных правил переместить, скопировать, удалить, переименовать, или открытые файлы на основе их имени, расширения, размера, даты создания, и т.д.
Вот полностью не протестирован :) сценарий жемчуга к виду на основе первого символа в имени файла
use File::Copy;
# base directory of where we want to copy files
my $destdir = "destdir";
opendir("dir_to_sort", DH);
my @files = readdir(DH);
closedir(DH);
foreach my $file (@files)
{
# skip . and ..
next if $file =~ /^\.$/;
next if $file =~ /^\.\.$/;
# This is where you'd figure out where you want to put the file
# in this example we're just looking at the first char.
# so a file named "HelloWorld" would be copied to $destdir/H/HelloWorld
# pull the first char
$file =~ /^(.).*/;
my $target_dir = $1;
mkdir("$destdir/$target_dir") unless -d "$destdir/$target_dir"
# you could use move instead of copy here
copy($file, "$destdir/$target_dir/$file");
}
Действительно, это полностью не тестируется, если Вы проигрываете, все путем выполнения этого, не жалуйтесь, что я не предупредил Вас.:)