Подтвердить что ты не робот

Атомность файла.

Я хочу переименовать файл в каталог как атомную транзакцию. Файл не будет изменять каталоги. Путь предоставляется в виде UNC-пути к файловой системе NTFS, возможно, на сервере 03 или 08.

Является ли File.Move() атомарным для этих целей? Как и в случае, он либо завершается успешно, либо не работает, так что исходный файл все еще не поврежден?

Моя кишка говорит "да", но я хотел убедиться.

4b9b3361

Ответ 1

Да, в NTFS. Из здесь:

В стороне, если вы работаете под NTFS, тогда операции с файлами являются атомарными на уровне файловой системы. Переименование будет происходить в одной операции в отношении любого более высокого кода. Проблема, с которой вы видите, кажется, является проблемой, когда объект FileInfo используется совместно для приложений. Это объект MarshalByRef и, следовательно, может использоваться в средах удаленного доступа. Не знаю, относится ли это к вам.