public void RenameAllFiles(IPictureDirectory targetDirectory, bool recursive = false) { string[] fileList = GetFileList(); foreach (string fileName in fileList) { try { IFileHandler handler = _fileHandlerFactory.GetFileHandler(fileName, _fileSystem, null, _exifReader); try { string newFileName = handler.PerformRenameAndMove(targetDirectory); } catch (IOException) { // this file could not be moved - move to the next // TODO: log issue } } catch (NotImplementedException) {} } if (recursive) { string[] dirList = GetDirectoriesList(); foreach (string dirName in dirList) { IPictureDirectory dir = _pictureDirectoryFactory.GetDirectory(dirName); dir.RenameAllFiles(targetDirectory); if (!_fileSystem.GetFilesInDirectory(dirName).Any() && !_fileSystem.GetDirectoriesInDirectory(dirName).Any()) { _fileSystem.DeleteDirectory(dirName); } } } }
public string PerformRenameAndMove(IPictureDirectory targetDirectory) { string newName = GetNewRenamedFileName(); string newFullName = targetDirectory.Directory + "\\" + newName; FileSystem.MoveFile(FileName, newFullName); FileName = newFullName; return newFullName; }
public void ResizeAllFiles(IPictureDirectory targetDirectory) { string[] fileList = GetFileList(); foreach (string fileName in fileList) { try { IFileHandler handler = _fileHandlerFactory.GetFileHandler(fileName, _fileSystem, null, _exifReader); try { string newFileName = handler.PerformCompressAndMove(targetDirectory); } catch (IOException) { // this file could not be moved - move to the next // TODO: log issue } } catch (NotImplementedException) {} } }
public void ResizeAllFiles(IPictureDirectory targetDirectory) { throw new NotImplementedException(); }
public void RenameAllFiles(IPictureDirectory targetDirectory, bool recursive = false) { throw new NotImplementedException(); }
public abstract string PerformCompressAndMove(IPictureDirectory targetDirectory);
public override string PerformCompressAndMove(IPictureDirectory targetDirectory) { string originalFileName = FileName; Match namePart = Regex.Match(FileName, @"\\([^\\]*)_" + RenamedIdentifier + @"_([0-9]{4}\.jpg)", RegexOptions.IgnoreCase); if (namePart.Groups.Count <= 1) { throw new FileLoadException("Can only compress renamed files"); } string shortOriginalFileName = namePart.Groups[1] + "_" + RenamedIdentifier + "_" + namePart.Groups[2]; string shortNewFileName = namePart.Groups[1] + "_" + CompressedIdentifier + "_" + namePart.Groups[2]; //string expectedName = datePart + "_JM" + namePart.Groups[2]; string compressedFileName = targetDirectory.Directory + "\\" + shortNewFileName; if (FileSystem.FileExists(compressedFileName)) { throw new IOException("File already exists in target location: " + compressedFileName); } _compressor.Compress(originalFileName, compressedFileName); if (FileSystem.FileExists(compressedFileName)) { FileSystem.DeleteFile(originalFileName); FileName = compressedFileName; } return compressedFileName; }