Программа для группировки файлов от одной большой папки в несколько меньших?

У нас есть система здесь, которая недавно имела отказ жесткого диска. Я смог использовать программное обеспечение восстановления для получения большинства файлов от него, но это не смогло получить имена папок по большей части. Вместо этого это вывело больше всего все (приблизительно 200 000 файлов!) в одну папку. Это - смерть для файловой системы Windows.

Кто-либо может рекомендовать пользе (предпочтительно свободный) программа автоматически отсортировать эти файлы в новые папки?

В этом случае файлы по крайней мере уже сгруппированы типом. Я думал к виду или именем или датой создания/изменять, и затем назовите.

0
задан 27.01.2010, 20:19

3 ответа

Зависит от того, как Вы хотите отсортировать их. Они все - различные типы? Командная строка очень удобна для этого.

пример:

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

Существует свободный графический инструмент для выполнения подобных операций, соответственно названного Вида Файла, который может помочь Вам вид именем файла, возрастом и размером:

alt text

3
ответ дан 24.11.2019, 03:41

Бельведер от редактора Lifehacker мог бы быть полезным.

alt text

Используйте дружественный интерфейс Бельведера для создания усовершенствованных правил переместить, скопировать, удалить, переименовать, или открытые файлы на основе их имени, расширения, размера, даты создания, и т.д.

1
ответ дан 24.11.2019, 03:41

Вот полностью не протестирован :) сценарий жемчуга к виду на основе первого символа в имени файла

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");
}

Действительно, это полностью не тестируется, если Вы проигрываете, все путем выполнения этого, не жалуйтесь, что я не предупредил Вас.:)

0
ответ дан 24.11.2019, 03:41

Теги

Похожие вопросы