Безопасное копирование файлов в Delphi
Недавно я добавил два внешних накопителя WD Caviar Black SATA емкостью 2 ТБ во внешний корпус с интерфейсом USB 2.0 . С тех пор мне приходится иметь дело со случайным повреждением файлов, когда я копирую файлы с помощью Explorer с моего локального диска C: на внешние диски. Я либо получаю файлы, которые больше не могут быть прочитаны, либо файлы, которые могут быть прочитаны, но не могут быть скопированы, если они находятся на одном из внешних жестких дисков. Все диски были проверены и в порядке. Сделал поиск в Google сейчас и нашел в Интернете различные подсказки, что это может быть проблема с оболочкой моего Vista Home Premium 32bit (все обновления применены).
Чтобы обойти это повреждение файлов, я ищу наиболее безопасный способ копирования файлов из одной файловой системы NTFS в другую (с сохранением всех свойств файла), включая проверку CRC32 - если это возможно, без участия командной консоли. Может кто-нибудь указать мне фрагмент кода, который показывает, как это сделать в Delphi 2007 Pro?
3 ответа
Ваши диски, вероятно, отформатированы с NTFS.
Диск можно отформатировать только для NTFS, если он не помечен для "быстрого удаления".
Это означает, что вы должны правильно выключить компьютер перед выключением или удалением диска NTFS.
Для копирования вы можете использовать RoboCopy; хотя он не имеет подтверждения, но у него очень быстрый режим резервного копирования (который вы можете использовать, когда вы вошли в систему как администратор и получили статус администратора).
XXCOPY подтвердил, и хорошее сравнение RoboCopy/XXCOPY здесь.
Для своих резервных копий я использую систему RAID с активной проверкой. Это означает, что он регулярно проверяет все тома RAID на целостность. Не дешево, но стоит денег.
Если кому-то интересно: я нашел интересный код Delphi на сайте графа Ф. Глинна по адресу
Повреждение файла исчезло, так как я снова включил UAC в своей системе. Я читал отчеты об этом раньше (хотя они были очень расплывчаты), и кажется, что это помогло. Еще раз спасибо за все ответы! Очень признателен.