diff --git a/Program.cs b/Program.cs index 34701d1..6f89d39 100644 --- a/Program.cs +++ b/Program.cs @@ -4,47 +4,16 @@ // If there is no file. Repeat public class Program { static void Main(string[] args) { + + Console.ForegroundColor = ConsoleColor.Green; + Console.WriteLine("Starting the checksum process."); + Console.ResetColor(); - // int getDirectoryCount() { - // int folderCount = Directory.GetDirectories(Directory.GetCurrentDirectory()).Length; // Get folder count in current directory - // return folderCount; - // } + chksum.doTheThing(); - int getFileCount() { - int fileCount = Directory.GetFiles(Directory.GetCurrentDirectory()).Length; // Get file count in current directory - return fileCount; - } + Console.ForegroundColor = ConsoleColor.Green; + Console.WriteLine("Checksum process finished"); + Console.ResetColor(); - // string getParentFolder() { - // string parentFolder = Directory.GetParent(Directory.GetCurrentDirectory()).ToString(); // Get parent folder of current directory - // return parentFolder; - // } - - string CalculateMD5(string filename) { - using (var md5 = System.Security.Cryptography.MD5.Create()) - { - using (var stream = File.OpenRead(filename)) - { - var hash = md5.ComputeHash(stream); - return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant(); - } - } - } - - foreach (var directory in Directory.GetDirectories(Directory.GetCurrentDirectory())) { - string parentFolder = directory; - Directory.SetCurrentDirectory(directory); // Set new root - if (getFileCount() >= 1) { - DirectoryInfo dir = new DirectoryInfo(Directory.GetCurrentDirectory()); - FileInfo[] files = dir.GetFiles(); - foreach (FileInfo file in files) { - string fileName = file.Name; - string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileName); - string checksumFile = Directory.GetCurrentDirectory() + "/" + fileNameWithoutExtension + ".md5"; - File.AppendAllText(checksumFile, CalculateMD5(fileName) + " " + fileName); - } - } - Directory.SetCurrentDirectory(parentFolder); // Go back to the original root - } } } \ No newline at end of file diff --git a/chksum.cs b/chksum.cs new file mode 100644 index 0000000..2678adb --- /dev/null +++ b/chksum.cs @@ -0,0 +1,50 @@ +// Go into folder +// Check if any file is in there +// If there is a file. Calculate md5sum > filename.md5 +// If there is no file. Repeat +public class chksum { + + // int getDirectoryCount() { + // int folderCount = Directory.GetDirectories(Directory.GetCurrentDirectory()).Length; // Get folder count in current directory + // return folderCount; + // } + + private static int getFileCount() { + int fileCount = Directory.GetFiles(Directory.GetCurrentDirectory()).Length; // Get file count in current directory + return fileCount; + } + + // string getParentFolder() { + // string parentFolder = Directory.GetParent(Directory.GetCurrentDirectory()).ToString(); // Get parent folder of current directory + // return parentFolder; + // } + + private static string CalculateMD5(string filename) { + using (var md5 = System.Security.Cryptography.MD5.Create()) + { + using (var stream = File.OpenRead(filename)) + { + var hash = md5.ComputeHash(stream); + return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant(); + } + } + } + + public static void doTheThing() { + foreach (var directory in Directory.GetDirectories(Directory.GetCurrentDirectory())) { + Directory.SetCurrentDirectory(directory); // Set new root + if (getFileCount() >= 1) { + DirectoryInfo dir = new DirectoryInfo(Directory.GetCurrentDirectory()); + FileInfo[] files = dir.GetFiles(); + foreach (FileInfo file in files) { + string fileName = file.Name; + string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileName); + string checksumFile = Directory.GetCurrentDirectory() + "/" + fileNameWithoutExtension + ".md5"; + File.AppendAllText(checksumFile, CalculateMD5(fileName) + " " + fileName); + Console.WriteLine(checksumFile); + } + } + doTheThing(); + } + } +} \ No newline at end of file