コード例 #1
0
 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);
             }
         }
     }
 }
コード例 #2
0
ファイル: FileHandler.cs プロジェクト: JMnITup/PictureHandler
 public string PerformRenameAndMove(IPictureDirectory targetDirectory)
 {
     string newName = GetNewRenamedFileName();
     string newFullName = targetDirectory.Directory + "\\" + newName;
     FileSystem.MoveFile(FileName, newFullName);
     FileName = newFullName;
     return newFullName;
 }
コード例 #3
0
 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) {}
     }
 }
コード例 #4
0
 public void ResizeAllFiles(IPictureDirectory targetDirectory)
 {
     throw new NotImplementedException();
 }
コード例 #5
0
 public void RenameAllFiles(IPictureDirectory targetDirectory, bool recursive = false)
 {
     throw new NotImplementedException();
 }
コード例 #6
0
ファイル: FileHandler.cs プロジェクト: JMnITup/PictureHandler
 public abstract string PerformCompressAndMove(IPictureDirectory targetDirectory);
コード例 #7
0
        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;
        }