private string GenerateFileName(JPGFileFoundEventArgs args, string dateTimeOriginal) { string fileName = String.Empty; switch (naming) { case Naming.Original: fileName = Path.GetFileName(args.FilePath); break; case Naming.EXIFDateTime: fileName = GenerateFileNameFromDateTimeOriginal(dateTimeOriginal) + Path.GetExtension(args.FilePath); break; } return(fileName); }
private void HandleJPGFileFoundEvent(object sender, JPGFileFoundEventArgs args) { string dateTimeOriginal = String.Empty; using (Image image = Image.FromFile(args.FilePath)) { dateTimeOriginal = ParseDateTimeOriginal(image); } string destinationSubdirectory = GenerateSubdirectoryPath(args, dateTimeOriginal); if (!Directory.Exists(destinationSubdirectory)) { Directory.CreateDirectory(destinationSubdirectory); } string fileName = GenerateFileName(args, dateTimeOriginal); string destinationFilePath = Path.Combine(destinationSubdirectory, fileName); try { File.Copy(args.FilePath, destinationFilePath); } catch (IOException) //File already exists... { string extension = Path.GetExtension(fileName); fileName = Path.GetFileNameWithoutExtension(fileName); int suffix = 1; string newFileName = String.Empty; while (File.Exists(destinationFilePath)) { newFileName = String.Format("{0} {1}{2}", fileName, suffix, extension); destinationFilePath = Path.Combine(destinationSubdirectory, newFileName); suffix++; } File.Copy(args.FilePath, destinationFilePath); } }
private void OnJPGFileFound(Organizer sender, JPGFileFoundEventArgs e) { JPGFileFoundEvent?.Invoke(sender, e); }
private string GenerateSubdirectoryPath(JPGFileFoundEventArgs args, string dateTimeOriginal) { string imageDate = ParseDateFromDateTimeOriginal(dateTimeOriginal); return(Path.Combine(args.DestinationDirectoryPath, imageDate)); }