Имитация File.Move, если место назначения уже существует

Из документации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ничего не возвращает, он должен генерировать исключение в любом случае, если это не удается. Кто-нибудь сталкивался с ситуациями, когда это не так?

7
задан M.Babcock 24 April 2012 в 20:02
поделиться