diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..aed3225 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,2 @@ +# Default ignored files +/.idea.OneDriveArchiver/.idea/workspace.xml diff --git a/OneDriveArchiver/IoHelper.cs b/OneDriveArchiver/IoHelper.cs index 11f2bc4..6d1b601 100644 --- a/OneDriveArchiver/IoHelper.cs +++ b/OneDriveArchiver/IoHelper.cs @@ -1,6 +1,8 @@ #region Using Statements + using System; using System.IO; + #endregion namespace OneDriveArchiver @@ -8,21 +10,18 @@ namespace OneDriveArchiver public static class IoHelper { /// - /// Archives a one drive file. It takes the file creation date and month, - /// creates the necessary folder structure (if necessary) i.e. Year\Month and - /// moves the file to the (new) target folder. The Sync engine of OneDrive then - /// will sync the changes being made back to the cloud. Base Path is the path where - /// the file was found. So the subfolder will start in the same directory. + /// Archives a one drive file. It takes the file creation date and month, + /// creates the necessary folder structure (if necessary) i.e. Year\Month and + /// moves the file to the (new) target folder. The Sync engine of OneDrive then + /// will sync the changes being made back to the cloud. Base Path is the path where + /// the file was found. So the subfolder will start in the same directory. /// /// Filename public static void ArchiveOneDriveFile(string filename) { try { - if (string.IsNullOrEmpty(filename)) - { - throw new ArgumentException("filename cannot be null."); - } + if (string.IsNullOrEmpty(filename)) throw new ArgumentException("filename cannot be null."); // do a check if the file is empty... var fi = new FileInfo(filename); @@ -32,25 +31,20 @@ namespace OneDriveArchiver File.Delete(filename); return; } + var dateModified = File.GetLastWriteTime(filename); var fileMonth = dateModified.Month.ToString("D2"); var fileYear = dateModified.Year.ToString(); var basePath = Path.GetDirectoryName(filename); var fileNameWithOutPath = Path.GetFileName(filename); - + // check if we have to create either year or month folder... // start with parent year folder... var fullYearFolderPath = Path.Combine(basePath ?? throw new InvalidOperationException(), fileYear); var fullMonthFolderPath = Path.Combine(Path.Combine(basePath, fileYear), fileMonth); - if (!Directory.Exists(fullYearFolderPath)) - { - Directory.CreateDirectory(fullYearFolderPath); - } + if (!Directory.Exists(fullYearFolderPath)) Directory.CreateDirectory(fullYearFolderPath); // then month... - if (!Directory.Exists(fullMonthFolderPath)) - { - Directory.CreateDirectory(fullMonthFolderPath); - } + if (!Directory.Exists(fullMonthFolderPath)) Directory.CreateDirectory(fullMonthFolderPath); // then move the file... File.Move(filename, Path.Combine(fullMonthFolderPath, fileNameWithOutPath)); diff --git a/OneDriveArchiver/Program.cs b/OneDriveArchiver/Program.cs index 652c224..de71e56 100644 --- a/OneDriveArchiver/Program.cs +++ b/OneDriveArchiver/Program.cs @@ -1,18 +1,21 @@ #region Using Statements + using System; using System.IO; + #endregion namespace OneDriveArchiver { - class Program + internal class Program { - static void Main(string[] args) + private static void Main(string[] args) { if (args.Length != 1) { // handle improper arguments - Console.WriteLine("OneDriverArchiver: Please specify a directory with files mapped to a Microsoft OneDrive folder."); + Console.WriteLine( + "OneDriverArchiver: Please specify a directory with files mapped to a Microsoft OneDrive folder."); } else { @@ -49,7 +52,8 @@ namespace OneDriveArchiver var endProcessingTime = DateTime.Now; var processingTime = endProcessingTime - startUpTime; - Console.WriteLine($"OneDriverArchiver: Processing completed.\nProcessing time = {processingTime}\nNumber of files = {filesToProcess.Length}."); + Console.WriteLine( + $"OneDriverArchiver: Processing completed.\nProcessing time = {processingTime}\nNumber of files = {filesToProcess.Length}."); } } } diff --git a/OneDriveArchiver/Properties/AssemblyInfo.cs b/OneDriveArchiver/Properties/AssemblyInfo.cs index bfb758b..61dda95 100644 --- a/OneDriveArchiver/Properties/AssemblyInfo.cs +++ b/OneDriveArchiver/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ using System.Runtime.InteropServices; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file