Moving file from same source/destination no longer just deletes the file.

This commit is contained in:
kay.one 2011-12-14 00:06:54 -08:00
parent 1c99541731
commit 19c087e50a
2 changed files with 24 additions and 4 deletions

View File

@ -48,6 +48,20 @@ namespace NzbDrone.Common.Test
File.Exists(targetPath).Should().BeTrue();
}
[Test]
public void moveFile_should_not_move_overwrite_itself()
{
var diskProvider = new DiskProvider();
diskProvider.CopyDirectory(BinFolder.FullName, BinFolderCopy.FullName);
var targetPath = BinFolderCopy.GetFiles("*.dll", SearchOption.AllDirectories).First().FullName;
diskProvider.MoveFile(targetPath, targetPath);
File.Exists(targetPath).Should().BeTrue();
ExceptionVerification.ExcpectedWarns(1);
}
[Test]
public void CopyFolder_should_copy_folder()
{

View File

@ -125,14 +125,20 @@ namespace NzbDrone.Common
File.Delete(path);
}
public virtual void MoveFile(string sourcePath, string destinationPath)
public virtual void MoveFile(string source, string destination)
{
if (FileExists(destinationPath))
if (PathEquals(source, destination))
{
DeleteFile(destinationPath);
Logger.Warn("Source and destination can't be the same {0}", source);
return;
}
File.Move(sourcePath, destinationPath);
if (FileExists(destination))
{
DeleteFile(destination);
}
File.Move(source, destination);
}
public virtual void DeleteFolder(string path, bool recursive)