Сообщение Re[3]: Перенос файловой структуры (без файлов) от 01.01.2025 18:46
Изменено 01.01.2025 19:10 Shmj
Re[3]: Перенос файловой структуры (без файлов)
Здравствуйте, Alekzander, Вы писали:
S>>У меня есть на скорую руку созданное на C++ QT — кроссплатформа, которое умеет:
S>>1. Пройтись по всем файлам и в заданной директории и сформировать XML-дерево, которое отображает структуру файловой системы.
S>>2. Вычислить для каждого файла хеш-сумму и добавить в дерево. У меня было 300+ Гб и около 2 млн. файлов — заняло несколько часов.
S>>3. Найти уникальные хеши и скопировать соответствующие им файлы в одну папку, частично сохраняя название и расширение (но добавляя уникальности в имя).
S>>4. Восстановить файловую структуру на основе XML и папки с файлами.
A>Да, но тут, насколько я понимаю, нет переименования.
Есть сравнение по содержимому файла — не важно имя. Потом по заданному XML — создаете нужную структуру с именами из XML (и хешем из XML), но берем файлы из общего каталога на основе хеша.
S>>У меня есть на скорую руку созданное на C++ QT — кроссплатформа, которое умеет:
S>>1. Пройтись по всем файлам и в заданной директории и сформировать XML-дерево, которое отображает структуру файловой системы.
S>>2. Вычислить для каждого файла хеш-сумму и добавить в дерево. У меня было 300+ Гб и около 2 млн. файлов — заняло несколько часов.
S>>3. Найти уникальные хеши и скопировать соответствующие им файлы в одну папку, частично сохраняя название и расширение (но добавляя уникальности в имя).
S>>4. Восстановить файловую структуру на основе XML и папки с файлами.
A>Да, но тут, насколько я понимаю, нет переименования.
Есть сравнение по содержимому файла — не важно имя. Потом по заданному XML — создаете нужную структуру с именами из XML (и хешем из XML), но берем файлы из общего каталога на основе хеша.
Re[3]: Перенос файловой структуры (без файлов)
Здравствуйте, Alekzander, Вы писали:
S>>У меня есть на скорую руку созданное на C++ QT — кроссплатформа, которое умеет:
S>>1. Пройтись по всем файлам и в заданной директории и сформировать XML-дерево, которое отображает структуру файловой системы.
S>>2. Вычислить для каждого файла хеш-сумму и добавить в дерево. У меня было 300+ Гб и около 2 млн. файлов — заняло несколько часов.
S>>3. Найти уникальные хеши и скопировать соответствующие им файлы в одну папку, частично сохраняя название и расширение (но добавляя уникальности в имя).
S>>4. Восстановить файловую структуру на основе XML и папки с файлами.
A>Да, но тут, насколько я понимаю, нет переименования.
Есть сравнение по содержимому файла — не важно имя. Потом по заданному XML — создаете нужную структуру с именами из XML (и хешем из XML), но берем файлы из общего каталога на основе хеша.
Т.е. оно создает базу файлов — все в одной папке. А не, не в одной — в подпапках по расширению, вспомнил. Это удобно, к примеру. чтобы посмотреть все картинки. Имена делает чуть измененные в этой базе, т.к. могут быть разные файлы с одинаковыми именами.
А далее — подсовываете любой XML-файл с заданной структурой — и оно воссоздает заново файловую структуру по XML. Имена файлов и папок — из XML, содержимое файлов — из той папке, где все по расширениям раскидано. Естественно для той папки так же есть XML для быстрого поиска по словарю.
Есть исходники, все работает. Но все делалось на скорую руку, не вылизывал.
S>>У меня есть на скорую руку созданное на C++ QT — кроссплатформа, которое умеет:
S>>1. Пройтись по всем файлам и в заданной директории и сформировать XML-дерево, которое отображает структуру файловой системы.
S>>2. Вычислить для каждого файла хеш-сумму и добавить в дерево. У меня было 300+ Гб и около 2 млн. файлов — заняло несколько часов.
S>>3. Найти уникальные хеши и скопировать соответствующие им файлы в одну папку, частично сохраняя название и расширение (но добавляя уникальности в имя).
S>>4. Восстановить файловую структуру на основе XML и папки с файлами.
A>Да, но тут, насколько я понимаю, нет переименования.
Есть сравнение по содержимому файла — не важно имя. Потом по заданному XML — создаете нужную структуру с именами из XML (и хешем из XML), но берем файлы из общего каталога на основе хеша.
Т.е. оно создает базу файлов — все в одной папке. А не, не в одной — в подпапках по расширению, вспомнил. Это удобно, к примеру. чтобы посмотреть все картинки. Имена делает чуть измененные в этой базе, т.к. могут быть разные файлы с одинаковыми именами.
А далее — подсовываете любой XML-файл с заданной структурой — и оно воссоздает заново файловую структуру по XML. Имена файлов и папок — из XML, содержимое файлов — из той папке, где все по расширениям раскидано. Естественно для той папки так же есть XML для быстрого поиска по словарю.
Есть исходники, все работает. Но все делалось на скорую руку, не вылизывал.