FilePath ready to test
This commit is contained in:
@ -127,17 +127,16 @@ public class Rename
|
||||
}
|
||||
if (records.Count != 0)
|
||||
{
|
||||
int intMinValueLength = int.MinValue.ToString().Length;
|
||||
foreach (Record record in records)
|
||||
{
|
||||
if (record.Id is null)
|
||||
continue;
|
||||
if (intMinValueLength < record.Id.Value.ToString().Length)
|
||||
if (_PropertyConfiguration.IntMinValueLength < record.Id.Value.ToString().Length)
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
message = $"{intMinValueLength}) comparing records";
|
||||
message = $"{_PropertyConfiguration.IntMinValueLength}) comparing records";
|
||||
progressBar = new(records.Count, message, options);
|
||||
toDoCollection.AddRange(GetToDoCollection(progressBar, nefPresent, records, intMinValueLength));
|
||||
toDoCollection.AddRange(GetToDoCollection(progressBar, nefPresent, records));
|
||||
progressBar.Dispose();
|
||||
}
|
||||
foreach ((FileHolder fileHolder, string directory, string to) in toDoCollection)
|
||||
@ -204,7 +203,7 @@ public class Rename
|
||||
if (distinct.Contains(lines[1]))
|
||||
continue;
|
||||
distinct.Add(lines[1]);
|
||||
fileHolder = new(lines[0]);
|
||||
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(lines[0]);
|
||||
results.Add(new(fileHolder, directory, lines[1]));
|
||||
}
|
||||
return results;
|
||||
@ -216,6 +215,7 @@ public class Rename
|
||||
int? id;
|
||||
string? message;
|
||||
string? directory;
|
||||
FilePath filePath;
|
||||
DateTime[] dateTimes;
|
||||
FileHolder fileHolder;
|
||||
string[]? ffmpegFiles;
|
||||
@ -223,26 +223,22 @@ public class Rename
|
||||
DateTime? dateTimeOriginal;
|
||||
bool isValidImageFormatExtension;
|
||||
ASCIIEncoding asciiEncoding = new();
|
||||
bool nameWithoutExtensionIsIdFormat;
|
||||
bool nameWithoutExtensionIsPaddedIdFormat;
|
||||
IReadOnlyList<MetadataExtractor.Directory> directories;
|
||||
short sortOrderOnlyLengthIndex = IDirectory.GetSortOrderOnlyLengthIndex(_PropertyConfiguration.Offset);
|
||||
for (int i = 0; i < files.Length; i++)
|
||||
{
|
||||
progressBar.Tick();
|
||||
fileHolder = new(files[i]);
|
||||
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(files[i]);
|
||||
if (!fileHolder.Exists)
|
||||
continue;
|
||||
directory = Path.GetDirectoryName(files[i]);
|
||||
if (string.IsNullOrEmpty(directory))
|
||||
continue;
|
||||
filePath = FilePath.Get(_Configuration.PropertyConfiguration, fileHolder, index: i);
|
||||
if (fileHolder.ExtensionLowered == ".paddedId" || fileHolder.ExtensionLowered == ".lsv" || fileHolder.DirectoryName is null)
|
||||
continue;
|
||||
if (files.Contains($"{fileHolder.FullName}.paddedId"))
|
||||
continue;
|
||||
nameWithoutExtensionIsIdFormat = Shared.Models.Stateless.Methods.IProperty.NameWithoutExtensionIsIdFormat(fileHolder);
|
||||
nameWithoutExtensionIsPaddedIdFormat = IDirectory.NameWithoutExtensionIsPaddedIdFormat(fileHolder, sortOrderOnlyLengthIndex);
|
||||
if (nameWithoutExtensionIsIdFormat || nameWithoutExtensionIsPaddedIdFormat)
|
||||
if (filePath.IsIntelligentIdFormat || filePath.SortOrder is not null)
|
||||
continue;
|
||||
isValidImageFormatExtension = _PropertyConfiguration.ValidImageFormatExtensions.Contains(fileHolder.ExtensionLowered);
|
||||
isIgnoreExtension = isValidImageFormatExtension && _PropertyConfiguration.IgnoreExtensions.Contains(fileHolder.ExtensionLowered);
|
||||
@ -262,7 +258,7 @@ public class Rename
|
||||
ffmpegFiles = Directory.GetFiles(fileHolder.DirectoryName, $"{fileHolder.Name}-*.jpg", SearchOption.TopDirectoryOnly);
|
||||
if (ffmpegFiles.Length == 0)
|
||||
continue;
|
||||
fileHolder = new(ffmpegFiles.First());
|
||||
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(ffmpegFiles.First());
|
||||
if (!fileHolder.Name.EndsWith("-0001.jpg"))
|
||||
throw new Exception();
|
||||
isValidImageFormatExtension = _PropertyConfiguration.ValidImageFormatExtensions.Contains(fileHolder.ExtensionLowered);
|
||||
@ -275,7 +271,7 @@ public class Rename
|
||||
(dateTimeOriginal, dateTimes, id, message) = Property.Models.Stateless.IProperty.Get(_PropertyConfiguration.PopulatePropertyId, metadata, fileHolder, isIgnoreExtension, isValidImageFormatExtension, asciiEncoding);
|
||||
if (ffmpegFiles is not null)
|
||||
{
|
||||
fileHolder = new(files[i]);
|
||||
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(files[i]);
|
||||
foreach (string ffmpegFile in ffmpegFiles)
|
||||
File.Delete(ffmpegFile);
|
||||
}
|
||||
@ -286,7 +282,7 @@ public class Rename
|
||||
return results;
|
||||
}
|
||||
|
||||
private List<(FileHolder, string, string)> GetToDoCollection(ProgressBar progressBar, bool nefPresent, List<Record> records, int intMinValueLength)
|
||||
private List<(FileHolder, string, string)> GetToDoCollection(ProgressBar progressBar, bool nefPresent, List<Record> records)
|
||||
{
|
||||
List<(FileHolder, string, string)> results = [];
|
||||
int season;
|
||||
@ -330,7 +326,7 @@ public class Rename
|
||||
if (distinct.Contains(checkFile))
|
||||
continue;
|
||||
distinct.Add(checkFile);
|
||||
results.Add(new(new($"{fileHolder.FullName}.paddedId"), fileHolder.DirectoryName, checkFile));
|
||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName}.paddedId"), fileHolder.DirectoryName, checkFile));
|
||||
}
|
||||
checkFile = Path.Combine(fileHolder.DirectoryName, $"{fileHolder.NameWithoutExtension}{jpg}");
|
||||
if (File.Exists(checkFile))
|
||||
@ -340,13 +336,13 @@ public class Rename
|
||||
distinct.Add(checkFile);
|
||||
results.Add(new(fileHolder, fileHolder.DirectoryName, checkFile));
|
||||
if (nefPresent)
|
||||
results.Add(new(new($"{fileHolder.FullName[..^4]}.tif"), fileHolder.DirectoryName, $"{checkFile[..^4]}.tif"));
|
||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.tif"), fileHolder.DirectoryName, $"{checkFile[..^4]}.tif"));
|
||||
if (nefPresent)
|
||||
results.Add(new(new($"{fileHolder.FullName[..^4]}.nef"), fileHolder.DirectoryName, $"{checkFile[..^4]}.nef"));
|
||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.nef"), fileHolder.DirectoryName, $"{checkFile[..^4]}.nef"));
|
||||
if (File.Exists(checkFile))
|
||||
continue;
|
||||
File.Move(fileHolder.FullName, checkFile);
|
||||
fileHolder = new(checkFile);
|
||||
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(checkFile);
|
||||
if (fileHolder.DirectoryName is null)
|
||||
continue;
|
||||
}
|
||||
@ -398,15 +394,15 @@ public class Rename
|
||||
distinct.Add(checkFile);
|
||||
results.Add(new(fileHolder, fileHolder.DirectoryName, checkFile));
|
||||
if (nefPresent)
|
||||
results.Add(new(new($"{fileHolder.FullName[..^4]}.tif"), fileHolder.DirectoryName, $"{checkFile[..^4]}.tif"));
|
||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.tif"), fileHolder.DirectoryName, $"{checkFile[..^4]}.tif"));
|
||||
if (nefPresent)
|
||||
results.Add(new(new($"{fileHolder.FullName[..^4]}.nef"), fileHolder.DirectoryName, $"{checkFile[..^4]}.nef"));
|
||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.nef"), fileHolder.DirectoryName, $"{checkFile[..^4]}.nef"));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (record.Id is null)
|
||||
continue;
|
||||
paddedId = IDirectory.GetPaddedId(intMinValueLength, record.Index, record.Id.Value);
|
||||
paddedId = IId.GetPaddedId(_PropertyConfiguration, record.Index, record.Id.Value);
|
||||
checkFileExtension = fileHolder.ExtensionLowered == jpeg ? jpg : fileHolder.ExtensionLowered;
|
||||
checkFile = Path.Combine(seasonDirectory, $"{paddedId}{checkFileExtension}");
|
||||
if (checkFile == fileHolder.FullName)
|
||||
@ -422,9 +418,9 @@ public class Rename
|
||||
distinct.Add(checkFile);
|
||||
results.Add(new(fileHolder, seasonDirectory, checkFile));
|
||||
if (nefPresent)
|
||||
results.Add(new(new($"{fileHolder.FullName[..^4]}.tif"), seasonDirectory, $"{checkFile[..^4]}.tif"));
|
||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.tif"), seasonDirectory, $"{checkFile[..^4]}.tif"));
|
||||
if (nefPresent)
|
||||
results.Add(new(new($"{fileHolder.FullName[..^4]}.nef"), seasonDirectory, $"{checkFile[..^4]}.nef"));
|
||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.nef"), seasonDirectory, $"{checkFile[..^4]}.nef"));
|
||||
}
|
||||
}
|
||||
return results;
|
||||
|
Reference in New Issue
Block a user