1
0
Fork 0
mirror of https://github.com/Radarr/Radarr synced 2025-02-07 23:33:52 +00:00

Fixed a bug in DiskProvider where it wouldn't copy subfolders properly.

This commit is contained in:
kay.one 2011-11-13 20:05:33 -08:00
parent bc5307a4d3
commit ecbf127321
2 changed files with 18 additions and 9 deletions

View file

@ -35,11 +35,7 @@ public void CopyFolder_should_copy_folder()
diskProvider.CopyDirectory(BinFolder.FullName, BinFolderCopy.FullName);
//Assert
BinFolder.Refresh();
BinFolderCopy.Refresh();
BinFolder.GetFiles("*.*", SearchOption.AllDirectories)
.Should().HaveSameCount(BinFolderCopy.GetFiles("*.*", SearchOption.AllDirectories));
VerifyCopy();
}
[Test]
@ -51,16 +47,24 @@ public void CopyFolder_should_overright_existing_folder()
diskProvider.CopyDirectory(BinFolder.FullName, BinFolderCopy.FullName);
//Delete Random File
BinFolderCopy.GetFiles().First().Delete();
BinFolderCopy.Refresh();
BinFolderCopy.GetFiles("*.*", SearchOption.AllDirectories).First().Delete();
diskProvider.CopyDirectory(BinFolder.FullName, BinFolderCopy.FullName);
//Assert
VerifyCopy();
}
private void VerifyCopy()
{
BinFolder.Refresh();
BinFolderCopy.Refresh();
BinFolder.GetFiles("*.*", SearchOption.AllDirectories)
.Should().HaveSameCount(BinFolderCopy.GetFiles("*.*", SearchOption.AllDirectories));
BinFolderCopy.GetFiles("*.*", SearchOption.AllDirectories)
.Should().HaveSameCount(BinFolder.GetFiles("*.*", SearchOption.AllDirectories));
BinFolderCopy.GetDirectories().Should().HaveSameCount(BinFolder.GetDirectories());
}
}
}

View file

@ -67,7 +67,12 @@ public virtual void CopyDirectory(string source, string target)
targetFolder.Create();
}
foreach (var file in sourceFolder.GetFiles("*.*", SearchOption.AllDirectories))
foreach (var subDir in sourceFolder.GetDirectories())
{
CopyDirectory(subDir.FullName, Path.Combine(target, subDir.Name));
}
foreach (var file in sourceFolder.GetFiles("*.*", SearchOption.TopDirectoryOnly))
{
var destFile = Path.Combine(target, file.Name);
file.CopyTo(destFile, true);