private static void CopyFile(FileDetail file, String destinationFolderPath, ref Int32 copiedFilesCount) { var parentFolderName = file.CreationDate.ToString(ConfigurationManager.AppSettings["dateFolderFormat"]); var parentFolderPath = Path.Combine(destinationFolderPath, parentFolderName); if (!Directory.Exists(parentFolderPath)) { Directory.CreateDirectory(parentFolderPath); } var destinationFilePath = Path.Combine(parentFolderPath, file.FileName); // check if file already exists if (Program.IsFileExist(destinationFilePath)) { Console.WriteLine($"File {destinationFilePath} already exists. Copy aborted for this file."); return; } Console.WriteLine($"...Copying file {file.FilePath} to {destinationFilePath}..."); try { File.Copy(file.FilePath, destinationFilePath); ++copiedFilesCount; return; } catch (Exception e) { Console.WriteLine($"An error occured during copying file {file.FilePath} to {destinationFilePath}"); Console.WriteLine("Error message:"); Console.WriteLine(e.Message); } }
internal static IEnumerable <FileDetail> GetMediaFiles(String path) { var mediaFolderName = ConfigurationManager.AppSettings["mediaFolderName"]; path = Path.Combine(path, mediaFolderName); List <FileDetail> fileDetails = new List <FileDetail>(); IEnumerable <String> filePaths = Directory.GetFiles(path); foreach (String filePath in filePaths) { FileDetail fileDetail = new FileDetail(); fileDetail.CreationDate = File.GetCreationTime(filePath); fileDetail.FilePath = filePath; fileDetail.FileName = Path.GetFileName(filePath); fileDetails.Add(fileDetail); } return(fileDetails); }