static void Main(string[] args) { if (args.Length < 2 || !File.Exists(args[0]) || !Directory.Exists(args[1])) { printUsage(); return; } string foldersListConfigFile = args[0]; string destinationFolder = args[1]; logFilePath = destinationFolder + @"/log.txt"; indexRecord = new IndexRecord(destinationFolder); using (StreamReader reader = new StreamReader(foldersListConfigFile)) { while (reader.Peek() >= 0) { string folder = reader.ReadLine(); if (folder.StartsWith("-")) notScanFolderList.Add(folder.Remove(0, 1)); else scanFolderList.Add(folder); } } foreach (string folder in scanFolderList) { Console.WriteLine("Start Scan Folder: " + folder); recordAllFileInfo(folder, destinationFolder); } indexRecord.scanCleanAndGenerateFileIDToDeleteList(destinationFolder + @"\delete"); indexRecord.saveFileIDIndexedList(); Console.WriteLine("Done! File Processed: {0}; Directory Processed: {1}; Directory Skipped: {2}; Error: {3}", processedFileCount, processedDirectoryCount, skippedDirectoryCount, errorCoult); }