Копирование файлов
От: anatolym  
Дата: 18.01.17 09:02
Оценка:
В сети есть компьютер на котором находятся несколько папок с базами лиц. В каждой папке примерно пол миллиона поддиректорий, в каждой из которых файлы с лицами.
Как быстрее всего слить эти папки (копированием или перемещением) в одну (расположенную на том же диске)? Открыть любую из папок и выделить поддиректории, чтобы перетащить их, нереально, виндовс начинает перечислять поддиректории и это процесс, видимо, может длится не один час.
Может быть есть какие-то утилиты для этого?
Re: Копирование файлов
От: CEMb  
Дата: 18.01.17 09:07
Оценка: 2 (1)
Здравствуйте, anatolym, Вы писали:

A>Как быстрее всего слить эти папки (копированием или перемещением) в одну (расположенную на том же диске)?


move любой папки на тот же диск делается моментально, изменением записи в FAT-е
Re[2]: Копирование файлов
От: anatolym  
Дата: 18.01.17 09:14
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Здравствуйте, anatolym, Вы писали:


A>>Как быстрее всего слить эти папки (копированием или перемещением) в одну (расположенную на том же диске)?


CEM>move любой папки на тот же диск делается моментально, изменением записи в FAT-е


Есть еще одна проблема, связанная с перечислением директорий в папке. Когда их несколько сотен тысяч, то виндовс делает это очень медленно. Можно как-то переместить содержимое директории, не перечисляя поддиректории?
Re: Копирование файлов
От: Stanislav V. Zudin Россия  
Дата: 18.01.17 09:25
Оценка: 2 (1)
Здравствуйте, anatolym, Вы писали:

A>В сети есть компьютер на котором находятся несколько папок с базами лиц. В каждой папке примерно пол миллиона поддиректорий, в каждой из которых файлы с лицами.

A>Как быстрее всего слить эти папки (копированием или перемещением) в одну (расположенную на том же диске)? Открыть любую из папок и выделить поддиректории, чтобы перетащить их, нереально, виндовс начинает перечислять поддиректории и это процесс, видимо, может длится не один час.

Из командной строки копирование/перемещение будет быстрее, чем в Проводнике. Смотри команды copy, xcopy, move.
Ты упомянул, что "сети есть компьютер". Если подключаться к расшаренному каталогу на удаленной машине, то при копировании каждый файл будет путешествовать по сети на твой компьютер, а потом обратно. Поэтому лучше использовать удаленный доступ (RDP, ssh etc.).

Добавлю еще: robocopy /?
_____________________
С уважением,
Stanislav V. Zudin
Отредактировано 18.01.2017 9:30 Stanislav V. Zudin . Предыдущая версия .
Re: Копирование файлов
От: wildwind Россия  
Дата: 18.01.17 11:15
Оценка: 2 (1)
Здравствуйте, anatolym, Вы писали:

A>Как быстрее всего слить эти папки (копированием или перемещением) в одну (расположенную на том же диске)?

for /r %F in (*.jpg) do move "%F" D:\Destination\


Только не забывай про возможные конфликты имен.
Re: Копирование файлов
От: Слава  
Дата: 18.01.17 11:55
Оценка: 5 (2) +1
Здравствуйте, anatolym, Вы писали:

A>В сети есть компьютер на котором находятся несколько папок с базами лиц. В каждой папке примерно пол миллиона поддиректорий, в каждой из которых файлы с лицами.

A>Как быстрее всего слить эти папки (копированием или перемещением) в одну (расположенную на том же диске)? Открыть любую из папок и выделить поддиректории, чтобы перетащить их, нереально, виндовс начинает перечислять поддиректории и это процесс, видимо, может длится не один час.
A>Может быть есть какие-то утилиты для этого?

Вам уже дали все возможные рекомендации. Я же добавлю — это очень плохая идея, из полумиллиона папок с неизвестным количеством файлов в каждой, сливать все файлы в одну папку. Ну, чтобы она содержала 50 миллионов имён, и вообще никогда и никак не могла быть прочитана стандартными средствами, вроде проводника.

Подобные количества файлов бывают в кэшах чего-то. И squid для своего кэша создаёт древовидную структуру — 256 папок, в каждой из них еще 256 и так далее. Оно читается уже относительно быстро.

Еще лучше — использовать для такого хранения какую-то базу.
Re[2]: Копирование файлов
От: anatolym  
Дата: 18.01.17 12:28
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, anatolym, Вы писали:


A>>В сети есть компьютер на котором находятся несколько папок с базами лиц. В каждой папке примерно пол миллиона поддиректорий, в каждой из которых файлы с лицами.

A>>Как быстрее всего слить эти папки (копированием или перемещением) в одну (расположенную на том же диске)? Открыть любую из папок и выделить поддиректории, чтобы перетащить их, нереально, виндовс начинает перечислять поддиректории и это процесс, видимо, может длится не один час.
A>>Может быть есть какие-то утилиты для этого?

С>Вам уже дали все возможные рекомендации. Я же добавлю — это очень плохая идея, из полумиллиона папок с неизвестным количеством файлов в каждой, сливать все файлы в одну папку. Ну, чтобы она содержала 50 миллионов имён, и вообще никогда и никак не могла быть прочитана стандартными средствами, вроде проводника.


С>Подобные количества файлов бывают в кэшах чего-то. И squid для своего кэша создаёт древовидную структуру — 256 папок, в каждой из них еще 256 и так далее. Оно читается уже относительно быстро.


С>Еще лучше — использовать для такого хранения какую-то базу.


В общую папку копируются не файлы, а вложенные папки, но все равно в итоге там будет как минимум 3 миллиона папок. Да, наверное использовать базу лучшее решение, нежели сливать все вложенные папки в одну.
Re[3]: Копирование файлов
От: Carc Россия https://vk.com/gosha_mazov
Дата: 18.01.17 13:51
Оценка: 2 (1)
Здравствуйте, anatolym, Вы писали:


A>Есть еще одна проблема, связанная с перечислением директорий в папке. Когда их несколько сотен тысяч, то виндовс делает это очень медленно. Можно как-то переместить содержимое директории, не перечисляя поддиректории?


SHFileOperation + FO_MOVE + folder
Aml Pages Home
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.