private static List <DuplicateFile> GetDuplicateFiles(string rootDirectory) { var directoryParser = new WindowsDirectoryParser(); var duplicateFileFinder = new DuplicateFileFinder(directoryParser); var windowsFileSizer = new WindowsFileSizer(); var fileSizeDuplicatePatternMatcher = new FileSizeDuplicatePatternMatcher(windowsFileSizer); var fileHasher = new WindowsFileHasher(); var fileHashDuplicatePatternMatcher = new FileHashDuplicatePatternMatcher(fileHasher); var fileNameDuplicatePatternMatcher = new FileNameDuplicatePatternMatcher(); var duplicateFiles = duplicateFileFinder.GetDuplicates(rootDirectory, fileHashDuplicatePatternMatcher); return(duplicateFiles); }
public void DuplicateFileFinderWithNoDuplicatesReturnsSuccess() { Mock <IFileHashProvider> fileHashMock = new Mock <IFileHashProvider>(); var fileList = new List <FileInfoWithHash>(); fileList.Add(new FileInfoWithHash("test1", "test1")); fileList.Add(new FileInfoWithHash("test2", "test2")); Mock <IFileRepository> fileRepositoryMock = new Mock <IFileRepository>(); fileRepositoryMock.Setup(m => m.GetFiles(It.IsAny <string>())) .Returns(fileList); IDuplicateFileFinder duplicateFileFinder = new DuplicateFileFinder(fileRepositoryMock.Object); var duplicates = duplicateFileFinder.FindDuplicates(@".\"); Assert.IsTrue(duplicates.Count == 0); }
private static async Task FindDups(string sourcepath) { var dff = new DuplicateFileFinder( null, new Directory(sourcepath) ); dff.OnFileReadError += DffOnOnFileReadError; dff.OnPlannedDelete += DffOnOnPlannedDelete; dff.OnDuplicateFound += dff_OnDuplicateFound; dff.OnHashProgress += dff_OnHashProgress; await dff.FindDuplicates(); LogDups(); }
public DuplicateViewModel() { Bc = new BitMapCreator(); if (DesignerProperties.GetIsInDesignMode(new DependencyObject())) { var dff = new DuplicateFileFinder( null, new Directory(@"C:\Users\Kevin\OneDrive\duptest")); dff.FindDuplicates(); FileMapByString fm = dff._duplicates; foreach (var item in fm) { foreach (IFile file in item.Value) { dff_OnDuplicateFound(item.Key, file.Path, file.GetSize()); } } } }
public void SetUp() { fileNameDuplicatePatternMatcher = new FileNameDuplicatePatternMatcher(); rootDirectory = "."; directories = new List <DirectoryData> { new DirectoryData("Directory 1", @"c:\Directory 1"), new DirectoryData("Directory 2", @"c:\Directory 2"), new DirectoryData("Directory 3", @"c:\Directory 3") }; duplicateFileName1 = "File 1.txt"; duplicateFileName2 = "File 2.txt"; files = new List <FileData> { new FileData(duplicateFileName1, fullName: null), new FileData(duplicateFileName1, fullName: null), new FileData(duplicateFileName1, fullName: null), new FileData(duplicateFileName2, fullName: null), new FileData(duplicateFileName2, fullName: null), new FileData(duplicateFileName2, fullName: null), new FileData(duplicateFileName2, fullName: null), new FileData(duplicateFileName2, fullName: null), new FileData(duplicateFileName2, fullName: null), new FileData("File 3.txt", fullName: null) }; directoryParser = new Mock <IDirectoryParser>(); directoryParser .Setup(dp => dp.FindAllDirectories(rootDirectory, IncludeRootDirectoryInResults.Yes)) .Returns(directories); directoryParser .Setup(dp => dp.FindAllFiles(It.IsAny <List <DirectoryData> >())) .Returns(files); duplicateFileFinder = new DuplicateFileFinder(directoryParser.Object); }
public void DuplicateFileFinderWithEmptyStringFileRepositoryError() { IDuplicateFileFinder duplicateFileFinder = new DuplicateFileFinder(null); duplicateFileFinder.FindDuplicates(string.Empty); }