2016-12-13 23 views
-2

Я работаю над проектом, который должен смотреть на большие объемы данных (~ 1 ТБ) и копировать его с диска A на диск B. Он будет постоянно запускаться в фоновом режиме (или в лотке) и запускать проверку каждые XX ч/мин. В это время он проверит, есть ли какие-либо НОВЫЕ файлы на диске A и скопируйте их на диск B. Если есть файлы, которые были обновлены и новее, тогда он также скопирует и заменит файлы с A на B.Как создать программу сравнения и копирования файлов?

Я не уверен, с чего начать. Должен ли я писать это в Python или C# (возможно, визуально?)? Если бы кто-нибудь мог дать мне несколько советов, я был бы очень признателен. Благодаря!

EDIT:

Просто хотел дать обновление! Я закончил использование Robocopy, который встроен в Windows. Я отошел от Python и только что создал небольшой пакетный файл, который бы проверял все файлы на диске A и сравнивал с диском B. Если что-то было новым или не существовало, оно копирует его. Затем я задал задачу через Task Scheduler, также встроенный в Windows. Работает в буквальном смысле всего лишь 1 строка кода в пакетном файле!

+5

Добро пожаловать в SO, пожалуйста, напишите код, который вы написали, и опишите, что не работает. – Will

+0

В наши дни его меньше о том, какой язык использовать, потому что его право (например, fortran, cobol и т. Д.) И многое другое, потому что вы знаете, как ... – BugFinder

+0

Я согласен с BugFinder, это определенно выполнимо в Python. Я просто использовал C#, так как довольно легко сделать службы Windows. –

ответ

1

Я начал изучать что-то подобное себе. Я собирался написать его в C#, возможно, как системный сервис, а затем периодически его сканировать для новых файлов. Затем он будет создавать контрольные суммы с помощью sha1 или md5. You can look here about how to generate an MD5 in c#. Вот еще дополнительная информация о сравнении byte-for-byte vs checksum.

После того, как у него есть свой хеш-список, он может выполнить передачу файлов, а затем выполнить другой хеш в пункте назначения, чтобы убедиться, что он написан правильно. Я собирался просто держаться за все хеши, а затем, когда он пересказывает каталог, ему есть что сравнить, чтобы проверить, обновлен ли файл. Тогда это просто повторит вышеизложенное.

+0

Спасибо. Я действительно хочу просто проверить дату изменения, и если файл является новым, загрузите и замените. Просто не знаю, с чего начать. Есть ли библиотека, которую я мог бы использовать? lol Я просто смущен, где начать с чего-то подобного. После того, как я получу работу ядра, я смогу выяснить остальное. –

+0

Вот документация для System.IO.File для окон. Вы можете использовать его для получения таких вещей, как последнее время записи (измененная дата). https://msdn.microsoft.com/en-us/library/system.io.file(v=vs.110).aspx –

+0

Для ядра вы можете либо выполнить консольное приложение с иконкой в ​​трее, либо с помощью системной службы https://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx Затем вам просто нужно, чтобы сканирование происходило регулярно. Простая реализация может быть такой: http://stackoverflow.com/questions/12535722/what-is-the-best-way-to-implement-a-timer –

 Смежные вопросы

  • Нет связанных вопросов^_^