Exemplo n.º 1
0
        static void Main(string[] args)
        {
            XmlConfigurator.Configure();
            if (args.Count() != 1)
            {
                LogMessage("Please set path to search duplicates (sample C:\temp)");
                Console.ReadKey();
                Environment.Exit(0);
            }

            var folder = args.First();

            if (!Directory.Exists(folder))
            {
                LogMessage("folder [{0}] does not exists", folder);
                Console.ReadKey();
                Environment.Exit(0);
            }

            Stopwatch watch = new Stopwatch();

            LogMessage("Starting search files in directory [{0}] ...", folder);

            watch.Start();

            var fileList = WinApiSearch.RecursiveScan(folder);

            watch.Stop();
            LogMessage("{0} files found in directory [{1}], time spent: [{2}]", fileList.Count(), folder,
                       watch.Elapsed);

            var duplicateFilesFinder = new DuplicateFilesFinder(new FileHasherMd5(), fileList, Logger);

            duplicateFilesFinder.FileProcessed += OnFileProcessed;
            watch.Restart();

            var duplicates = duplicateFilesFinder.GetDuplicates();

            watch.Stop();
            LogMessage("");
            LogMessage("{0} duplicate groups found", duplicates.Count());
            LogMessage("{0} possible duplicates on this groups, time spent: [{1}]", duplicates.Sum(x => x.Count()),
                       watch.Elapsed);

            //using (StreamWriter sw = File.AppendText(@"C:\Pub\duplicates.txt"))
            //{
            //    foreach (var files in duplicates)
            //    {
            //        sw.WriteLine("=======================");
            //        foreach (var file in files)
            //        {
            //            sw.WriteLine(file.Path);
            //        }
            //    }
            //}

            Console.ReadKey();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            if (args.Count() != 1)
            {
                Console.WriteLine(@"Please set path to search duplicates (sample C:\temp)");
                Console.ReadKey();
                Environment.Exit(0);
            }

            var folder = args.First();

            if (!Directory.Exists(folder))
            {
                Console.WriteLine($"folder [{folder}] does not exists");
                Console.ReadKey();
                Environment.Exit(0);
            }

            var watch = new Stopwatch();

            watch.Start();
            var searchService = new WinApiSearch();

            try
            {
                var files = searchService.RecursiveScan(folder);
                foreach (var file in files)
                {
                    Console.WriteLine(file.Path);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }


            watch.Stop();
            Console.WriteLine($"Search was done for {watch.Elapsed}");


            Console.ReadKey();
        }