Esempio n. 1
0
        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);
        }
Esempio n. 3
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();
        }
Esempio n. 4
0
        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());
                    }
                }
            }
        }
Esempio n. 5
0
        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);
        }