Из документацииFile.Move
:
Обратите внимание, что если вы попытаетесь заменить файл, переместив файл с тем же именем в этот каталог, вы получите исключение IOException. Вы не можете использовать метод Move для перезаписи существующего файла.
Короче говоря, вы не можете перезаписать в Move
, поэтому, чтобы облегчить перезапись в Move, я имитирую поведение, выполняя File.Copy
с последующим File.Delete
. Что-то вроде:
if (File.Exists(dstFileName))
{
// System.IO.File.Move cannot be used to overwrite existing files, so we're going
// to simulate that behavior with a Copy & Delete.
File.Copy(procContext.FileName, dstFileName);
File.Delete(procContext.FileName);
}
else
File.Move(procContext.FileName, dstFileName);
Мой вопрос :Есть ли какие-либо ситуации, которые мне нужно остерегаться, которые могут привести к удалению исходного файла без его предварительного успешного копирования?
Насколько я понял из документации, так это то, что, поскольку File.Copy
ничего не возвращает, он должен генерировать исключение в любом случае, если это не удается. Кто-нибудь сталкивался с ситуациями, когда это не так?