From 950b2f0965d9d4127c2ffb634f77fa7ad918f740 Mon Sep 17 00:00:00 2001 From: "kay.one" Date: Thu, 17 Nov 2011 23:16:05 -0800 Subject: [PATCH] DiskProvider.MoveFile now overwrites existing file. --- NzbDrone.Common.Test/DiskProviderTests.cs | 15 +++++++++++++++ NzbDrone.Common/DiskProvider.cs | 17 +++++++++-------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/NzbDrone.Common.Test/DiskProviderTests.cs b/NzbDrone.Common.Test/DiskProviderTests.cs index c842fbf08..4e841281d 100644 --- a/NzbDrone.Common.Test/DiskProviderTests.cs +++ b/NzbDrone.Common.Test/DiskProviderTests.cs @@ -34,6 +34,20 @@ namespace NzbDrone.Common.Test } } + [Test] + public void moveFile_should_overwrite_existing_file() + { + var diskProvider = new DiskProvider(); + diskProvider.CopyDirectory(BinFolder.FullName, BinFolderCopy.FullName); + + var targetPath = Path.Combine(BinFolderCopy.FullName, "file.move"); + + diskProvider.MoveFile(BinFolderCopy.GetFiles("*.dll", SearchOption.AllDirectories).First().FullName, targetPath); + diskProvider.MoveFile(BinFolderCopy.GetFiles("*.dll", SearchOption.AllDirectories).First().FullName, targetPath); + + File.Exists(targetPath).Should().BeTrue(); + } + [Test] public void CopyFolder_should_copy_folder() { @@ -45,6 +59,7 @@ namespace NzbDrone.Common.Test VerifyCopy(); } + [Test] public void CopyFolder_should_overright_existing_folder() { diff --git a/NzbDrone.Common/DiskProvider.cs b/NzbDrone.Common/DiskProvider.cs index 2099bb7f6..4db625e94 100644 --- a/NzbDrone.Common/DiskProvider.cs +++ b/NzbDrone.Common/DiskProvider.cs @@ -98,24 +98,20 @@ namespace NzbDrone.Common TransferDirectory(subDir.FullName, Path.Combine(target, subDir.Name), transferAction); } - foreach (var file in sourceFolder.GetFiles("*.*", SearchOption.TopDirectoryOnly)) + foreach (var sourceFile in sourceFolder.GetFiles("*.*", SearchOption.TopDirectoryOnly)) { - var destFile = Path.Combine(target, file.Name); + var destFile = Path.Combine(target, sourceFile.Name); switch (transferAction) { case TransferAction.Copy: { - file.CopyTo(destFile, true); + sourceFile.CopyTo(destFile, true); break; } case TransferAction.Move: { - if (FileExists(destFile)) - { - File.Delete(destFile); - } - file.MoveTo(destFile); + MoveFile(sourceFile.FullName, destFile); break; } } @@ -130,6 +126,11 @@ namespace NzbDrone.Common public virtual void MoveFile(string sourcePath, string destinationPath) { + if (FileExists(destinationPath)) + { + DeleteFile(destinationPath); + } + File.Move(sourcePath, destinationPath); }