Безопасный способ программно переместить пакет файла? - PullRequest
0 голосов
/ 10 января 2011

О чем нужно заботиться при создании метода для перемещения (вырезания) пакета файлов из одного каталога в другой?

Допустим, сигнатура метода - Move(filter, sourceFolder, destinationFolder, overwrite).О чем мне нужно заботиться, чтобы избежать риска потери данных, особенно при перезаписи исходного файла и удалении исходного файла?

Несколько возможных сценариев, о которых я беспокоюсь: возникает ошибка, когда выполняется перемещение, файл перемещен, но файл каким-то образом поврежден, удален одноименный файл, чтобы разрешить перемещение нового файла, но затем возникает ошибкапри перемещении нового файла и т. д.

Я использую пространство имен .net System.IO для операций перемещения.

1 Ответ

0 голосов
/ 10 января 2011

Без транзакций самый безопасный способ - скопировать, проверить, а затем удалить. Это зависит от вас, если вы хотите перемещать файл (это то, как это делает Windows, операция перемещения может завершиться неудачно, оставив вам перемещенную половину файлов), или разрешить перемещение только всего пакета или его вообще нет.

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

...