Mimic File.Move se o destino já existir
Da documentação deFile.Move
:
Observe que, se você tentar substituir um arquivo movendo um arquivo com o mesmo nome para esse diretório, obterá uma IOException. Você não pode usar o método Move para substituir um arquivo existente.
Resumindo, você não pode sobrescreverMove
, de modo a facilitar a sobrescrever no Move I imitar o comportamento, fazendo umFile.Copy
seguido por umFile.Delete
. Algo como:
<code>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); </code>
A minha pergunta é: há alguma situação que eu preciso proteger contra o que poderia levar ao arquivo de origem ser excluído sem primeiro ser copiado com sucesso?
Meu entendimento de ler a documentação é que desdeFile.Copy
não retorna nada que deve lançar uma exceção em qualquer caso que não tenha sucesso. Alguém já encontrou alguma situação em que isso não seja verdade?