Season breakout
DirectoryName to DirectoryFullPath
This commit is contained in:
parent
444e7ed71a
commit
4da353d150
@ -422,7 +422,7 @@ public class DateGroup
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
windowsShortcut = new() { Path = item.FilePath.DirectoryName, Description = item.FilePath.Name };
|
windowsShortcut = new() { Path = item.FilePath.DirectoryFullPath, Description = item.FilePath.Name };
|
||||||
windowsShortcut.Save(string.Concat(fullFileName, ".lnk"));
|
windowsShortcut.Save(string.Concat(fullFileName, ".lnk"));
|
||||||
windowsShortcut.Dispose();
|
windowsShortcut.Dispose();
|
||||||
}
|
}
|
||||||
|
@ -400,7 +400,7 @@ public partial class E_Distance : IDistance
|
|||||||
}
|
}
|
||||||
if (!string.IsNullOrEmpty(focusDirectory))
|
if (!string.IsNullOrEmpty(focusDirectory))
|
||||||
{
|
{
|
||||||
if (!locationContainer.FilePath.DirectoryName.Contains(focusDirectory))
|
if (!locationContainer.FilePath.DirectoryFullPath.Contains(focusDirectory))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
json = Metadata.Models.Stateless.Methods.IMetadata.GetFaceEncoding(locationContainer.ExifDirectory);
|
json = Metadata.Models.Stateless.Methods.IMetadata.GetFaceEncoding(locationContainer.ExifDirectory);
|
||||||
|
@ -162,8 +162,8 @@ public partial class DragDropSearch : Form
|
|||||||
{
|
{
|
||||||
Text = item.FilePath.Name;
|
Text = item.FilePath.Name;
|
||||||
_TextBox.Text = item.FilePath.FullName;
|
_TextBox.Text = item.FilePath.FullName;
|
||||||
if (!string.IsNullOrEmpty(item.FilePath.DirectoryName))
|
if (!string.IsNullOrEmpty(item.FilePath.DirectoryFullPath))
|
||||||
_ = Process.Start("explorer.exe", string.Concat("\"", item.FilePath.DirectoryName, "\""));
|
_ = Process.Start("explorer.exe", string.Concat("\"", item.FilePath.DirectoryFullPath, "\""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -208,11 +208,11 @@ public class DuplicateSearch
|
|||||||
{
|
{
|
||||||
foreach (MappingFromItem? mappingFromItem in keyValuePair.Value)
|
foreach (MappingFromItem? mappingFromItem in keyValuePair.Value)
|
||||||
{
|
{
|
||||||
if (mappingFromItem?.ResizedFileHolder.DirectoryName is null)
|
if (mappingFromItem?.ResizedFileHolder.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
if (mappingFromItem.ResizedFileHolder.Exists)
|
if (mappingFromItem.ResizedFileHolder.Exists)
|
||||||
continue;
|
continue;
|
||||||
collection.Add(mappingFromItem.ResizedFileHolder.DirectoryName);
|
collection.Add(mappingFromItem.ResizedFileHolder.DirectoryFullPath);
|
||||||
results.Add(new(mappingFromItem.FilePath, mappingFromItem.ResizedFileHolder.FullName));
|
results.Add(new(mappingFromItem.FilePath, mappingFromItem.ResizedFileHolder.FullName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -173,12 +173,12 @@ public class D2_FaceParts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetSeasonABDirectory(string d2ResultsFullGroupDirectory, MappingFromItem mappingFromItem, bool any)
|
private string GetSeasonDirectory(string d2ResultsFullGroupDirectory, MappingFromItem mappingFromItem, bool any)
|
||||||
{
|
{
|
||||||
string result;
|
string result;
|
||||||
string minimumDateYear = mappingFromItem.MinimumDateTime.ToString("yyyy");
|
string minimumDateYear = mappingFromItem.MinimumDateTime.ToString("yyyy");
|
||||||
DateTime dateTime = mappingFromItem.DateTimeOriginal is null ? mappingFromItem.MinimumDateTime : mappingFromItem.DateTimeOriginal.Value;
|
DateTime dateTime = mappingFromItem.DateTimeOriginal is null ? mappingFromItem.MinimumDateTime : mappingFromItem.DateTimeOriginal.Value;
|
||||||
(int season, string seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeasonAB(dateTime.DayOfYear);
|
(int season, string seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
||||||
string year = mappingFromItem.DateTimeOriginal is null ? $"{minimumDateYear[1..]}{minimumDateYear[0]}" : mappingFromItem.DateTimeOriginal.Value.ToString("yyyy");
|
string year = mappingFromItem.DateTimeOriginal is null ? $"{minimumDateYear[1..]}{minimumDateYear[0]}" : mappingFromItem.DateTimeOriginal.Value.ToString("yyyy");
|
||||||
string directory = Path.Combine(d2ResultsFullGroupDirectory, $"[{_PropertyConfiguration.ResultContent}]", $"{year}.{season} {seasonName}");
|
string directory = Path.Combine(d2ResultsFullGroupDirectory, $"[{_PropertyConfiguration.ResultContent}]", $"{year}.{season} {seasonName}");
|
||||||
result = any ? Path.Combine(directory, "---") : Path.Combine(directory, "Complete");
|
result = any ? Path.Combine(directory, "---") : Path.Combine(directory, "Complete");
|
||||||
@ -273,7 +273,7 @@ public class D2_FaceParts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ = graphics.Save();
|
_ = graphics.Save();
|
||||||
string directory = GetSeasonABDirectory(d2ResultsFullGroupDirectory, mappingFromItem, any);
|
string directory = GetSeasonDirectory(d2ResultsFullGroupDirectory, mappingFromItem, any);
|
||||||
SaveImage(mappingFromItem, directory, image, faceFiles);
|
SaveImage(mappingFromItem, directory, image, faceFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -536,7 +536,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable
|
|||||||
string result;
|
string result;
|
||||||
if (filePaths.Count == 0)
|
if (filePaths.Count == 0)
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
string? sourceDirectory = filePaths[0].DirectoryName;
|
string? sourceDirectory = filePaths[0].DirectoryFullPath;
|
||||||
if (string.IsNullOrEmpty(sourceDirectory))
|
if (string.IsNullOrEmpty(sourceDirectory))
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
Uri uri;
|
Uri uri;
|
||||||
@ -707,7 +707,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable
|
|||||||
filePath = keyValuePair.Value[0];
|
filePath = keyValuePair.Value[0];
|
||||||
if (filePath.Id is null)
|
if (filePath.Id is null)
|
||||||
continue;
|
continue;
|
||||||
directoryNames = keyValuePair.Value.Select(l => l.DirectoryName.Replace('\\', '/')).ToArray();
|
directoryNames = keyValuePair.Value.Select(l => l.DirectoryFullPath.Replace('\\', '/')).ToArray();
|
||||||
paddedId = IId.GetPaddedId(propertyConfiguration, filePath.Id.Value, filePath.HasIgnoreKeyword, filePath.HasDateTimeOriginal, index: null);
|
paddedId = IId.GetPaddedId(propertyConfiguration, filePath.Id.Value, filePath.HasIgnoreKeyword, filePath.HasDateTimeOriginal, index: null);
|
||||||
identifier = new(directoryNames, filePath.HasDateTimeOriginal, filePath.Id.Value, filePath.Length, paddedId, filePath.LastWriteTicks);
|
identifier = new(directoryNames, filePath.HasDateTimeOriginal, filePath.Id.Value, filePath.Length, paddedId, filePath.LastWriteTicks);
|
||||||
identifiers.Add(identifier);
|
identifiers.Add(identifier);
|
||||||
@ -1190,7 +1190,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable
|
|||||||
}
|
}
|
||||||
if (resizedFileHolder.Exists && item.FilePath.HasIgnoreKeyword is not null && item.FilePath.HasIgnoreKeyword.Value != shouldIgnore.Value)
|
if (resizedFileHolder.Exists && item.FilePath.HasIgnoreKeyword is not null && item.FilePath.HasIgnoreKeyword.Value != shouldIgnore.Value)
|
||||||
{
|
{
|
||||||
if (!item.FilePath.DirectoryName.Contains("Results") || !item.FilePath.DirectoryName.Contains("Resize"))
|
if (!item.FilePath.DirectoryFullPath.Contains("Results") || !item.FilePath.DirectoryFullPath.Contains("Resize"))
|
||||||
throw new NotSupportedException($"Rename File! <{item.FilePath.FileNameFirstSegment}>");
|
throw new NotSupportedException($"Rename File! <{item.FilePath.FileNameFirstSegment}>");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -36,7 +36,7 @@ internal class F_Random
|
|||||||
bool immichAssetsCountIsZero = immichAssets.Count == 0;
|
bool immichAssetsCountIsZero = immichAssets.Count == 0;
|
||||||
foreach (Mapping mapping in distinctValidImageMappingCollection)
|
foreach (Mapping mapping in distinctValidImageMappingCollection)
|
||||||
{
|
{
|
||||||
if (mapping.MappingFromItem.FilePath.DirectoryName is null || mapping.MappingFromPerson is null)
|
if (mapping.MappingFromItem.FilePath.DirectoryFullPath is null || mapping.MappingFromPerson is null)
|
||||||
continue;
|
continue;
|
||||||
if (!idToPersonKeys.TryGetValue(mapping.MappingFromItem.Id, out personKeys))
|
if (!idToPersonKeys.TryGetValue(mapping.MappingFromItem.Id, out personKeys))
|
||||||
continue;
|
continue;
|
||||||
@ -104,7 +104,7 @@ internal class F_Random
|
|||||||
{
|
{
|
||||||
if (distinctCollection.Contains(mapping.MappingFromItem.Id))
|
if (distinctCollection.Contains(mapping.MappingFromItem.Id))
|
||||||
continue;
|
continue;
|
||||||
if (mapping.MappingFromItem.FilePath.DirectoryName is null)
|
if (mapping.MappingFromItem.FilePath.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
if (notNineCollection is not null && notNineCollection.Contains(mapping.MappingFromItem.Id))
|
if (notNineCollection is not null && notNineCollection.Contains(mapping.MappingFromItem.Id))
|
||||||
continue;
|
continue;
|
||||||
|
@ -170,9 +170,9 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
directory = Path.Combine($"{eDistanceContentDirectory}---", "Date Shortcuts", $"{dateTime.Year}.{season}-MM{dateTime.Month:00}-WW{weekOfYear}");
|
directory = Path.Combine($"{eDistanceContentDirectory}---", "Date Shortcuts", $"{dateTime.Year}.{season}-MM{dateTime.Month:00}-WW{weekOfYear}");
|
||||||
fileName = Path.Combine(directory, $"{mapping.MappingFromItem.FilePath.Name}.lnk");
|
fileName = Path.Combine(directory, $"{mapping.MappingFromItem.FilePath.Name}.lnk");
|
||||||
results.Add(new(mapping.MappingFromItem.FilePath.FullName, directory, dateTime, fileName, description, MakeAllHidden: false));
|
results.Add(new(mapping.MappingFromItem.FilePath.FullName, directory, dateTime, fileName, description, MakeAllHidden: false));
|
||||||
if (mapping.MappingFromItem.FilePath.DirectoryName is null)
|
if (mapping.MappingFromItem.FilePath.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
directoryName = Path.GetFileName(mapping.MappingFromItem.FilePath.DirectoryName);
|
directoryName = Path.GetFileName(mapping.MappingFromItem.FilePath.DirectoryFullPath);
|
||||||
if (!string.IsNullOrEmpty(mapping.MappingFromItem.Model) && !string.IsNullOrEmpty(mapping.MappingFromItem.Model.Trim()))
|
if (!string.IsNullOrEmpty(mapping.MappingFromItem.Model) && !string.IsNullOrEmpty(mapping.MappingFromItem.Model.Trim()))
|
||||||
{
|
{
|
||||||
// Remove-Item -LiteralPath "\\?\D:\Tmp\a\EX-Z70 "
|
// Remove-Item -LiteralPath "\\?\D:\Tmp\a\EX-Z70 "
|
||||||
@ -900,7 +900,7 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
results.Add(new(record.PersonDirectory));
|
results.Add(new(record.PersonDirectory));
|
||||||
facesDirectory = locationContainer.LengthSource.DirectoryName;
|
facesDirectory = locationContainer.LengthSource.DirectoryFullPath;
|
||||||
faceFileHolder = IFileHolder.Get(locationContainer.LengthSource.FullName);
|
faceFileHolder = IFileHolder.Get(locationContainer.LengthSource.FullName);
|
||||||
checkFile = Path.Combine(directory, $"{locationContainer.LengthSource.Name}");
|
checkFile = Path.Combine(directory, $"{locationContainer.LengthSource.Name}");
|
||||||
shortcutFile = Path.Combine(record.PersonDirectory, $"{locationContainer.LengthSource.Name}.lnk");
|
shortcutFile = Path.Combine(record.PersonDirectory, $"{locationContainer.LengthSource.Name}.lnk");
|
||||||
@ -1348,16 +1348,16 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
directoryName = Path.GetDirectoryName(face.Mapping.MappingFromItem.RelativePath);
|
directoryName = Path.GetDirectoryName(face.Mapping.MappingFromItem.RelativePath);
|
||||||
if (directoryName is null)
|
if (directoryName is null)
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
if (item.ResizedFileHolder?.DirectoryName is null || !item.ResizedFileHolder.Exists)
|
if (item.ResizedFileHolder?.DirectoryFullPath is null || !item.ResizedFileHolder.Exists)
|
||||||
continue;
|
continue;
|
||||||
directory = Path.Combine(item.ResizedFileHolder.DirectoryName, $"{_PropertyConfiguration.ResultAllInOne}Shortcuts", _PropertyConfiguration.ResultAllInOne);
|
directory = Path.Combine(item.ResizedFileHolder.DirectoryFullPath, $"{_PropertyConfiguration.ResultAllInOne}Shortcuts", _PropertyConfiguration.ResultAllInOne);
|
||||||
personDirectory = Path.Combine(directory, "No Faces");
|
personDirectory = Path.Combine(directory, "No Faces");
|
||||||
fileName = Path.Combine(personDirectory, $"{item.ResizedFileHolder.Name}.lnk");
|
fileName = Path.Combine(personDirectory, $"{item.ResizedFileHolder.Name}.lnk");
|
||||||
collection.Add(new(item.ResizedFileHolder.FullName, personDirectory, new(item.FilePath.LastWriteTicks), fileName, face.Mapping.MappingFromItem.Id.ToString(), MakeAllHidden: false));
|
collection.Add(new(item.ResizedFileHolder.FullName, personDirectory, new(item.FilePath.LastWriteTicks), fileName, face.Mapping.MappingFromItem.Id.ToString(), MakeAllHidden: false));
|
||||||
if (face.Mapping.MappingFromItem.ContainerDateTimes.Length > 0 && !distinct.Contains(item.ResizedFileHolder.DirectoryName))
|
if (face.Mapping.MappingFromItem.ContainerDateTimes.Length > 0 && !distinct.Contains(item.ResizedFileHolder.DirectoryFullPath))
|
||||||
{
|
{
|
||||||
distinct.Add(item.ResizedFileHolder.DirectoryName);
|
distinct.Add(item.ResizedFileHolder.DirectoryFullPath);
|
||||||
directoriesAndDateTimes.Add(new(item.ResizedFileHolder.DirectoryName, face.Mapping.MappingFromItem.ContainerDateTimes));
|
directoriesAndDateTimes.Add(new(item.ResizedFileHolder.DirectoryFullPath, face.Mapping.MappingFromItem.ContainerDateTimes));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1366,17 +1366,17 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
directoryName = Path.GetDirectoryName(mapping.MappingFromItem.RelativePath);
|
directoryName = Path.GetDirectoryName(mapping.MappingFromItem.RelativePath);
|
||||||
if (directoryName is null)
|
if (directoryName is null)
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
if (mapping.MappingFromItem.ResizedFileHolder.DirectoryName is null || !mapping.MappingFromItem.ResizedFileHolder.Exists)
|
if (mapping.MappingFromItem.ResizedFileHolder.DirectoryFullPath is null || !mapping.MappingFromItem.ResizedFileHolder.Exists)
|
||||||
continue;
|
continue;
|
||||||
dateTime = mapping.MappingFromItem.GetDateTimeOriginalThenMinimumDateTime();
|
dateTime = mapping.MappingFromItem.GetDateTimeOriginalThenMinimumDateTime();
|
||||||
if (mapping.By is null or Shared.Models.Stateless.IMapLogic.Sorting || mapping.MappingFromPerson?.ApproximateYears is null)
|
if (mapping.By is null or Shared.Models.Stateless.IMapLogic.Sorting || mapping.MappingFromPerson?.ApproximateYears is null)
|
||||||
{
|
{
|
||||||
if (mapping.MappingFromItem.ContainerDateTimes.Length > 0 && !distinct.Contains(mapping.MappingFromItem.ResizedFileHolder.DirectoryName))
|
if (mapping.MappingFromItem.ContainerDateTimes.Length > 0 && !distinct.Contains(mapping.MappingFromItem.ResizedFileHolder.DirectoryFullPath))
|
||||||
{
|
{
|
||||||
distinct.Add(mapping.MappingFromItem.ResizedFileHolder.DirectoryName);
|
distinct.Add(mapping.MappingFromItem.ResizedFileHolder.DirectoryFullPath);
|
||||||
directoriesAndDateTimes.Add(new(mapping.MappingFromItem.ResizedFileHolder.DirectoryName, mapping.MappingFromItem.ContainerDateTimes));
|
directoriesAndDateTimes.Add(new(mapping.MappingFromItem.ResizedFileHolder.DirectoryFullPath, mapping.MappingFromItem.ContainerDateTimes));
|
||||||
}
|
}
|
||||||
directory = Path.Combine(mapping.MappingFromItem.ResizedFileHolder.DirectoryName, $"{_PropertyConfiguration.ResultAllInOne}Shortcuts", _PropertyConfiguration.ResultAllInOne);
|
directory = Path.Combine(mapping.MappingFromItem.ResizedFileHolder.DirectoryFullPath, $"{_PropertyConfiguration.ResultAllInOne}Shortcuts", _PropertyConfiguration.ResultAllInOne);
|
||||||
personDirectory = Path.Combine(directory, "Unknown");
|
personDirectory = Path.Combine(directory, "Unknown");
|
||||||
fileName = Path.Combine(personDirectory, $"{mapping.MappingFromItem.ResizedFileHolder.Name}.lnk");
|
fileName = Path.Combine(personDirectory, $"{mapping.MappingFromItem.ResizedFileHolder.Name}.lnk");
|
||||||
collection.Add(new(mapping.MappingFromItem.ResizedFileHolder.FullName, personDirectory, dateTime, fileName, mapping.MappingFromLocation?.DeterministicHashCodeKey, MakeAllHidden: false));
|
collection.Add(new(mapping.MappingFromItem.ResizedFileHolder.FullName, personDirectory, dateTime, fileName, mapping.MappingFromLocation?.DeterministicHashCodeKey, MakeAllHidden: false));
|
||||||
@ -1394,12 +1394,12 @@ public partial class MapLogic : Shared.Models.Methods.IMapLogic
|
|||||||
if (string.IsNullOrEmpty(mapping.MappingFromPerson.DisplayDirectoryName))
|
if (string.IsNullOrEmpty(mapping.MappingFromPerson.DisplayDirectoryName))
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
personKeyFormatted = IPersonBirthday.GetFormatted(_Configuration.PersonBirthdayFormat, mapping.MappingFromPerson.PersonKey);
|
personKeyFormatted = IPersonBirthday.GetFormatted(_Configuration.PersonBirthdayFormat, mapping.MappingFromPerson.PersonKey);
|
||||||
if (mapping.MappingFromItem.ContainerDateTimes.Length > 0 && !distinct.Contains(mapping.MappingFromItem.ResizedFileHolder.DirectoryName))
|
if (mapping.MappingFromItem.ContainerDateTimes.Length > 0 && !distinct.Contains(mapping.MappingFromItem.ResizedFileHolder.DirectoryFullPath))
|
||||||
{
|
{
|
||||||
distinct.Add(mapping.MappingFromItem.ResizedFileHolder.DirectoryName);
|
distinct.Add(mapping.MappingFromItem.ResizedFileHolder.DirectoryFullPath);
|
||||||
directoriesAndDateTimes.Add(new(mapping.MappingFromItem.ResizedFileHolder.DirectoryName, mapping.MappingFromItem.ContainerDateTimes));
|
directoriesAndDateTimes.Add(new(mapping.MappingFromItem.ResizedFileHolder.DirectoryFullPath, mapping.MappingFromItem.ContainerDateTimes));
|
||||||
}
|
}
|
||||||
directory = Path.Combine(mapping.MappingFromItem.ResizedFileHolder.DirectoryName, $"{_PropertyConfiguration.ResultAllInOne}Shortcuts", personKeyFormatted);
|
directory = Path.Combine(mapping.MappingFromItem.ResizedFileHolder.DirectoryFullPath, $"{_PropertyConfiguration.ResultAllInOne}Shortcuts", personKeyFormatted);
|
||||||
if (!personKeyToIds.TryGetValue(mapping.MappingFromPerson.PersonKey, out ids))
|
if (!personKeyToIds.TryGetValue(mapping.MappingFromPerson.PersonKey, out ids))
|
||||||
personDirectory = Path.Combine(directory, mapping.MappingFromPerson.DisplayDirectoryName);
|
personDirectory = Path.Combine(directory, mapping.MappingFromPerson.DisplayDirectoryName);
|
||||||
else
|
else
|
||||||
|
@ -58,10 +58,10 @@ internal abstract class DecadeLogic
|
|||||||
string? personKeyFormattedDirectoryName;
|
string? personKeyFormattedDirectoryName;
|
||||||
foreach (LocationContainer locationContainer in locationContainers)
|
foreach (LocationContainer locationContainer in locationContainers)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(locationContainer.FilePath.DirectoryName))
|
if (string.IsNullOrEmpty(locationContainer.FilePath.DirectoryFullPath))
|
||||||
continue;
|
continue;
|
||||||
personNameDirectoryName = Path.GetFileName(locationContainer.FilePath.DirectoryName);
|
personNameDirectoryName = Path.GetFileName(locationContainer.FilePath.DirectoryFullPath);
|
||||||
yearDirectory = Path.GetDirectoryName(locationContainer.FilePath.DirectoryName);
|
yearDirectory = Path.GetDirectoryName(locationContainer.FilePath.DirectoryFullPath);
|
||||||
if (string.IsNullOrEmpty(yearDirectory))
|
if (string.IsNullOrEmpty(yearDirectory))
|
||||||
continue;
|
continue;
|
||||||
yearDirectoryName = Path.GetFileName(yearDirectory);
|
yearDirectoryName = Path.GetFileName(yearDirectory);
|
||||||
|
@ -215,21 +215,21 @@ internal abstract class MapLogic
|
|||||||
{
|
{
|
||||||
if (duplicate.Percent is null)
|
if (duplicate.Percent is null)
|
||||||
continue;
|
continue;
|
||||||
_ = Process.Start("explorer.exe", string.Concat("\"", duplicate.FilePath.DirectoryName, "\""));
|
_ = Process.Start("explorer.exe", string.Concat("\"", duplicate.FilePath.DirectoryFullPath, "\""));
|
||||||
personKeyFormatted = IPersonBirthday.GetFormatted(configuration.PersonBirthdayFormat, duplicate.PersonKey);
|
personKeyFormatted = IPersonBirthday.GetFormatted(configuration.PersonBirthdayFormat, duplicate.PersonKey);
|
||||||
}
|
}
|
||||||
foreach ((long personKey, int id, FilePath filePath, float? percent) in duplicates)
|
foreach ((long personKey, int id, FilePath filePath, float? percent) in duplicates)
|
||||||
{
|
{
|
||||||
if (percent is not null && percent.Value == 0)
|
if (percent is not null && percent.Value == 0)
|
||||||
continue;
|
continue;
|
||||||
_ = Process.Start("explorer.exe", string.Concat("\"", filePath.DirectoryName, "\""));
|
_ = Process.Start("explorer.exe", string.Concat("\"", filePath.DirectoryFullPath, "\""));
|
||||||
personKeyFormatted = IPersonBirthday.GetFormatted(configuration.PersonBirthdayFormat, personKey);
|
personKeyFormatted = IPersonBirthday.GetFormatted(configuration.PersonBirthdayFormat, personKey);
|
||||||
}
|
}
|
||||||
foreach ((long personKey, int id, FilePath filePath, float? percent) in duplicates)
|
foreach ((long personKey, int id, FilePath filePath, float? percent) in duplicates)
|
||||||
{
|
{
|
||||||
if (percent is not null && percent.Value > 0)
|
if (percent is not null && percent.Value > 0)
|
||||||
continue;
|
continue;
|
||||||
_ = Process.Start("explorer.exe", string.Concat("\"", filePath.DirectoryName, "\""));
|
_ = Process.Start("explorer.exe", string.Concat("\"", filePath.DirectoryFullPath, "\""));
|
||||||
personKeyFormatted = IPersonBirthday.GetFormatted(configuration.PersonBirthdayFormat, personKey);
|
personKeyFormatted = IPersonBirthday.GetFormatted(configuration.PersonBirthdayFormat, personKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -955,7 +955,7 @@ internal abstract class MapLogic
|
|||||||
if (distinct.Contains(personContainer.DisplayDirectoryAllFilePaths[i].Name))
|
if (distinct.Contains(personContainer.DisplayDirectoryAllFilePaths[i].Name))
|
||||||
continue;
|
continue;
|
||||||
distinct.Add(personContainer.DisplayDirectoryAllFilePaths[i].Name);
|
distinct.Add(personContainer.DisplayDirectoryAllFilePaths[i].Name);
|
||||||
directoryName = Path.GetFileName(personContainer.DisplayDirectoryAllFilePaths[i].DirectoryName);
|
directoryName = Path.GetFileName(personContainer.DisplayDirectoryAllFilePaths[i].DirectoryFullPath);
|
||||||
if (directoryName != personContainer.DisplayDirectoryName)
|
if (directoryName != personContainer.DisplayDirectoryName)
|
||||||
continue;
|
continue;
|
||||||
personBirthday = IPersonBirthday.GetPersonBirthday(personContainer.Key.Value);
|
personBirthday = IPersonBirthday.GetPersonBirthday(personContainer.Key.Value);
|
||||||
|
@ -104,7 +104,7 @@ internal abstract class RelationLogic
|
|||||||
string? personKeyFormattedDirectory;
|
string? personKeyFormattedDirectory;
|
||||||
foreach ((FileHolder fileHolder, _) in relationContainers)
|
foreach ((FileHolder fileHolder, _) in relationContainers)
|
||||||
{
|
{
|
||||||
personNameDirectory = fileHolder.DirectoryName;
|
personNameDirectory = fileHolder.DirectoryFullPath;
|
||||||
yearDirectory = Path.GetDirectoryName(personNameDirectory);
|
yearDirectory = Path.GetDirectoryName(personNameDirectory);
|
||||||
personNameDirectoryName = Path.GetFileName(personNameDirectory);
|
personNameDirectoryName = Path.GetFileName(personNameDirectory);
|
||||||
personKeyFormattedDirectory = Path.GetDirectoryName(yearDirectory);
|
personKeyFormattedDirectory = Path.GetDirectoryName(yearDirectory);
|
||||||
|
@ -115,7 +115,7 @@ public class MoveById
|
|||||||
progressBar.Tick();
|
progressBar.Tick();
|
||||||
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(file);
|
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(file);
|
||||||
filePath = FilePath.Get(_Configuration.PropertyConfiguration, fileHolder, index: null);
|
filePath = FilePath.Get(_Configuration.PropertyConfiguration, fileHolder, index: null);
|
||||||
if (fileHolder.ExtensionLowered == ".id" || fileHolder.DirectoryName is null)
|
if (fileHolder.ExtensionLowered == ".id" || fileHolder.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
if (allFiles.Contains($"{fileHolder.FullName}.id"))
|
if (allFiles.Contains($"{fileHolder.FullName}.id"))
|
||||||
continue;
|
continue;
|
||||||
|
@ -277,9 +277,9 @@ public class A_Property
|
|||||||
bool angleBracketCollectionAny = _AngleBracketCollection.Count != 0;
|
bool angleBracketCollectionAny = _AngleBracketCollection.Count != 0;
|
||||||
if (!angleBracketCollectionAny)
|
if (!angleBracketCollectionAny)
|
||||||
{
|
{
|
||||||
if (item.FilePath.DirectoryName is null)
|
if (item.FilePath.DirectoryFullPath is null)
|
||||||
throw new NullReferenceException(nameof(item.FilePath.DirectoryName));
|
throw new NullReferenceException(nameof(item.FilePath.DirectoryFullPath));
|
||||||
SetAngleBracketCollection(item.FilePath.DirectoryName, !item.IsUniqueFileName);
|
SetAngleBracketCollection(item.FilePath.DirectoryFullPath, !item.IsUniqueFileName);
|
||||||
}
|
}
|
||||||
bool isIgnoreExtension = item.IsValidImageFormatExtension && _PropertyConfiguration.IgnoreExtensions.Contains(item.FilePath.ExtensionLowered);
|
bool isIgnoreExtension = item.IsValidImageFormatExtension && _PropertyConfiguration.IgnoreExtensions.Contains(item.FilePath.ExtensionLowered);
|
||||||
result = GetImageProperty(metadata, item, sourceDirectoryFileTuples, parseExceptions, isIgnoreExtension);
|
result = GetImageProperty(metadata, item, sourceDirectoryFileTuples, parseExceptions, isIgnoreExtension);
|
||||||
|
@ -234,7 +234,7 @@ public class Rename
|
|||||||
if (string.IsNullOrEmpty(directory))
|
if (string.IsNullOrEmpty(directory))
|
||||||
continue;
|
continue;
|
||||||
filePath = FilePath.Get(_Configuration.PropertyConfiguration, fileHolder, index: i);
|
filePath = FilePath.Get(_Configuration.PropertyConfiguration, fileHolder, index: i);
|
||||||
if (fileHolder.ExtensionLowered == ".paddedId" || fileHolder.ExtensionLowered == ".lsv" || fileHolder.DirectoryName is null)
|
if (fileHolder.ExtensionLowered == ".paddedId" || fileHolder.ExtensionLowered == ".lsv" || fileHolder.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
if (files.Contains($"{fileHolder.FullName}.paddedId"))
|
if (files.Contains($"{fileHolder.FullName}.paddedId"))
|
||||||
continue;
|
continue;
|
||||||
@ -252,10 +252,10 @@ public class Rename
|
|||||||
CommandTask<CommandResult> result = Cli.Wrap("ffmpeg.exe")
|
CommandTask<CommandResult> result = Cli.Wrap("ffmpeg.exe")
|
||||||
// .WithArguments(new[] { "-ss", "00:00:00", "-t", "00:00:00", "-i", files[i], "-qscale:v", "2", "-r", "0.01", $"{fileHolder.Name}-%4d.jpg" })
|
// .WithArguments(new[] { "-ss", "00:00:00", "-t", "00:00:00", "-i", files[i], "-qscale:v", "2", "-r", "0.01", $"{fileHolder.Name}-%4d.jpg" })
|
||||||
.WithArguments(new[] { "-i", files[i], "-vframes", "1", $"{fileHolder.Name}-%4d.jpg" })
|
.WithArguments(new[] { "-i", files[i], "-vframes", "1", $"{fileHolder.Name}-%4d.jpg" })
|
||||||
.WithWorkingDirectory(fileHolder.DirectoryName)
|
.WithWorkingDirectory(fileHolder.DirectoryFullPath)
|
||||||
.ExecuteAsync();
|
.ExecuteAsync();
|
||||||
result.Task.Wait();
|
result.Task.Wait();
|
||||||
fastForwardMovingPictureExpertsGroupFiles = Directory.GetFiles(fileHolder.DirectoryName, $"{fileHolder.Name}-*.jpg", SearchOption.TopDirectoryOnly);
|
fastForwardMovingPictureExpertsGroupFiles = Directory.GetFiles(fileHolder.DirectoryFullPath, $"{fileHolder.Name}-*.jpg", SearchOption.TopDirectoryOnly);
|
||||||
if (fastForwardMovingPictureExpertsGroupFiles.Length == 0)
|
if (fastForwardMovingPictureExpertsGroupFiles.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(fastForwardMovingPictureExpertsGroupFiles.First());
|
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(fastForwardMovingPictureExpertsGroupFiles.First());
|
||||||
@ -265,7 +265,7 @@ public class Rename
|
|||||||
isIgnoreExtension = isValidImageFormatExtension && _PropertyConfiguration.IgnoreExtensions.Contains(fileHolder.ExtensionLowered);
|
isIgnoreExtension = isValidImageFormatExtension && _PropertyConfiguration.IgnoreExtensions.Contains(fileHolder.ExtensionLowered);
|
||||||
if (isIgnoreExtension || !isValidImageFormatExtension)
|
if (isIgnoreExtension || !isValidImageFormatExtension)
|
||||||
continue;
|
continue;
|
||||||
if (fileHolder.DirectoryName is null)
|
if (fileHolder.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
(dateTimeOriginal, dateTimes, id, message) = Property.Models.Stateless.IProperty.Get(_PropertyConfiguration, _PropertyConfiguration.PopulatePropertyId, metadata, fileHolder, isIgnoreExtension, isValidImageFormatExtension, asciiEncoding);
|
(dateTimeOriginal, dateTimes, id, message) = Property.Models.Stateless.IProperty.Get(_PropertyConfiguration, _PropertyConfiguration.PopulatePropertyId, metadata, fileHolder, isIgnoreExtension, isValidImageFormatExtension, asciiEncoding);
|
||||||
@ -311,7 +311,7 @@ public class Rename
|
|||||||
fileHolder = record.FileHolders.First();
|
fileHolder = record.FileHolders.First();
|
||||||
if (!fileHolder.Exists)
|
if (!fileHolder.Exists)
|
||||||
continue;
|
continue;
|
||||||
if (string.IsNullOrEmpty(fileHolder.DirectoryName))
|
if (string.IsNullOrEmpty(fileHolder.DirectoryFullPath))
|
||||||
continue;
|
continue;
|
||||||
dateTimeFromName = record.DateTimes.Length == 0 ? null : record.DateTimes.First();
|
dateTimeFromName = record.DateTimes.Length == 0 ? null : record.DateTimes.First();
|
||||||
if (fileHolder.ExtensionLowered == jpeg)
|
if (fileHolder.ExtensionLowered == jpeg)
|
||||||
@ -320,30 +320,30 @@ public class Rename
|
|||||||
{
|
{
|
||||||
if (File.Exists($"{fileHolder.FullName}.paddedId"))
|
if (File.Exists($"{fileHolder.FullName}.paddedId"))
|
||||||
{
|
{
|
||||||
checkFile = Path.Combine(fileHolder.DirectoryName, $"{fileHolder.NameWithoutExtension}{jpg}.paddedId");
|
checkFile = Path.Combine(fileHolder.DirectoryFullPath, $"{fileHolder.NameWithoutExtension}{jpg}.paddedId");
|
||||||
if (File.Exists(checkFile))
|
if (File.Exists(checkFile))
|
||||||
continue;
|
continue;
|
||||||
if (distinct.Contains(checkFile))
|
if (distinct.Contains(checkFile))
|
||||||
continue;
|
continue;
|
||||||
distinct.Add(checkFile);
|
distinct.Add(checkFile);
|
||||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName}.paddedId"), fileHolder.DirectoryName, checkFile));
|
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName}.paddedId"), fileHolder.DirectoryFullPath, checkFile));
|
||||||
}
|
}
|
||||||
checkFile = Path.Combine(fileHolder.DirectoryName, $"{fileHolder.NameWithoutExtension}{jpg}");
|
checkFile = Path.Combine(fileHolder.DirectoryFullPath, $"{fileHolder.NameWithoutExtension}{jpg}");
|
||||||
if (File.Exists(checkFile))
|
if (File.Exists(checkFile))
|
||||||
continue;
|
continue;
|
||||||
if (distinct.Contains(checkFile))
|
if (distinct.Contains(checkFile))
|
||||||
continue;
|
continue;
|
||||||
distinct.Add(checkFile);
|
distinct.Add(checkFile);
|
||||||
results.Add(new(fileHolder, fileHolder.DirectoryName, checkFile));
|
results.Add(new(fileHolder, fileHolder.DirectoryFullPath, checkFile));
|
||||||
if (nefPresent)
|
if (nefPresent)
|
||||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.tif"), fileHolder.DirectoryName, $"{checkFile[..^4]}.tif"));
|
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.tif"), fileHolder.DirectoryFullPath, $"{checkFile[..^4]}.tif"));
|
||||||
if (nefPresent)
|
if (nefPresent)
|
||||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.nef"), fileHolder.DirectoryName, $"{checkFile[..^4]}.nef"));
|
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.nef"), fileHolder.DirectoryFullPath, $"{checkFile[..^4]}.nef"));
|
||||||
if (File.Exists(checkFile))
|
if (File.Exists(checkFile))
|
||||||
continue;
|
continue;
|
||||||
File.Move(fileHolder.FullName, checkFile);
|
File.Move(fileHolder.FullName, checkFile);
|
||||||
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(checkFile);
|
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(checkFile);
|
||||||
if (fileHolder.DirectoryName is null)
|
if (fileHolder.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -361,13 +361,13 @@ public class Rename
|
|||||||
if (timeSpan is null || timeSpan.Value.TotalMinutes > _AppSettings.MaxMinutesDelta)
|
if (timeSpan is null || timeSpan.Value.TotalMinutes > _AppSettings.MaxMinutesDelta)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(_AppSettings.DefaultUnknownDirectoryName))
|
if (string.IsNullOrEmpty(_AppSettings.DefaultUnknownDirectoryName))
|
||||||
(isWrongYear, seasonDirectory) = (null, !_AppSettings.ForceIdName ? null : fileHolder.DirectoryName);
|
(isWrongYear, seasonDirectory) = (null, !_AppSettings.ForceIdName ? null : fileHolder.DirectoryFullPath);
|
||||||
else
|
else
|
||||||
(isWrongYear, seasonDirectory) = (null, !_AppSettings.ForceIdName ? null : Path.Combine(fileHolder.DirectoryName, _AppSettings.DefaultUnknownDirectoryName));
|
(isWrongYear, seasonDirectory) = (null, !_AppSettings.ForceIdName ? null : Path.Combine(fileHolder.DirectoryFullPath, _AppSettings.DefaultUnknownDirectoryName));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
directoryName = Path.GetFileName(fileHolder.DirectoryName);
|
directoryName = Path.GetFileName(fileHolder.DirectoryFullPath);
|
||||||
directoryNameSegments = directoryName.Split(' ');
|
directoryNameSegments = directoryName.Split(' ');
|
||||||
if (dateTimeFromName is null)
|
if (dateTimeFromName is null)
|
||||||
isWrongYear = null;
|
isWrongYear = null;
|
||||||
@ -375,7 +375,7 @@ public class Rename
|
|||||||
(isWrongYear, _) = Shared.Models.Stateless.Methods.IProperty.IsWrongYear(directoryNameSegments, dateTimeFromName.Value.ToString("yyyy"));
|
(isWrongYear, _) = Shared.Models.Stateless.Methods.IProperty.IsWrongYear(directoryNameSegments, dateTimeFromName.Value.ToString("yyyy"));
|
||||||
dateTime = minimumDateTime.Value.AddTicks(timeSpan.Value.Ticks);
|
dateTime = minimumDateTime.Value.AddTicks(timeSpan.Value.Ticks);
|
||||||
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
(season, seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeason(dateTime.DayOfYear);
|
||||||
seasonDirectory = Path.Combine(fileHolder.DirectoryName, $"{dateTime.Year}.{season} {seasonName}");
|
seasonDirectory = Path.Combine(fileHolder.DirectoryFullPath, $"{dateTime.Year}.{season} {seasonName}");
|
||||||
}
|
}
|
||||||
if (seasonDirectory is null || (isWrongYear is not null && isWrongYear.Value))
|
if (seasonDirectory is null || (isWrongYear is not null && isWrongYear.Value))
|
||||||
{
|
{
|
||||||
@ -386,17 +386,17 @@ public class Rename
|
|||||||
if (minimumDateTime is null)
|
if (minimumDateTime is null)
|
||||||
continue;
|
continue;
|
||||||
checkFileExtension = fileHolder.ExtensionLowered == jpeg ? jpg : fileHolder.ExtensionLowered;
|
checkFileExtension = fileHolder.ExtensionLowered == jpeg ? jpg : fileHolder.ExtensionLowered;
|
||||||
checkFile = Path.Combine(fileHolder.DirectoryName, $"{minimumDateTime.Value:yyyy-MM-dd}.{minimumDateTime.Value.Ticks}.{fileHolder.Length}{checkFileExtension}");
|
checkFile = Path.Combine(fileHolder.DirectoryFullPath, $"{minimumDateTime.Value:yyyy-MM-dd}.{minimumDateTime.Value.Ticks}.{fileHolder.Length}{checkFileExtension}");
|
||||||
if (checkFile == fileHolder.FullName)
|
if (checkFile == fileHolder.FullName)
|
||||||
continue;
|
continue;
|
||||||
if (distinct.Contains(checkFile))
|
if (distinct.Contains(checkFile))
|
||||||
continue;
|
continue;
|
||||||
distinct.Add(checkFile);
|
distinct.Add(checkFile);
|
||||||
results.Add(new(fileHolder, fileHolder.DirectoryName, checkFile));
|
results.Add(new(fileHolder, fileHolder.DirectoryFullPath, checkFile));
|
||||||
if (nefPresent)
|
if (nefPresent)
|
||||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.tif"), fileHolder.DirectoryName, $"{checkFile[..^4]}.tif"));
|
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.tif"), fileHolder.DirectoryFullPath, $"{checkFile[..^4]}.tif"));
|
||||||
if (nefPresent)
|
if (nefPresent)
|
||||||
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.nef"), fileHolder.DirectoryName, $"{checkFile[..^4]}.nef"));
|
results.Add(new(Shared.Models.Stateless.Methods.IFileHolder.Get($"{fileHolder.FullName[..^4]}.nef"), fileHolder.DirectoryFullPath, $"{checkFile[..^4]}.nef"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -78,7 +78,7 @@ public class SetCreatedDate
|
|||||||
{
|
{
|
||||||
progressBar.Tick();
|
progressBar.Tick();
|
||||||
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(file);
|
fileHolder = Shared.Models.Stateless.Methods.IFileHolder.Get(file);
|
||||||
if (fileHolder.ExtensionLowered == ".id" || fileHolder.ExtensionLowered == ".lsv" || fileHolder.DirectoryName is null)
|
if (fileHolder.ExtensionLowered == ".id" || fileHolder.ExtensionLowered == ".lsv" || fileHolder.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
if (_PropertyConfiguration.IgnoreExtensions.Contains(fileHolder.ExtensionLowered))
|
if (_PropertyConfiguration.IgnoreExtensions.Contains(fileHolder.ExtensionLowered))
|
||||||
continue;
|
continue;
|
||||||
|
@ -4,7 +4,7 @@ using System.Text.Json.Serialization;
|
|||||||
namespace View_by_Distance.Shared.Models;
|
namespace View_by_Distance.Shared.Models;
|
||||||
|
|
||||||
public record FileHolder(DateTime? CreationTime,
|
public record FileHolder(DateTime? CreationTime,
|
||||||
string? DirectoryName,
|
string? DirectoryFullPath,
|
||||||
bool Exists,
|
bool Exists,
|
||||||
string ExtensionLowered,
|
string ExtensionLowered,
|
||||||
string FullName,
|
string FullName,
|
||||||
@ -49,7 +49,7 @@ public record FileHolder(DateTime? CreationTime,
|
|||||||
{
|
{
|
||||||
FileHolder result;
|
FileHolder result;
|
||||||
result = new(new(filePath.CreationTicks),
|
result = new(new(filePath.CreationTicks),
|
||||||
filePath.DirectoryName,
|
filePath.DirectoryFullPath,
|
||||||
true,
|
true,
|
||||||
filePath.ExtensionLowered,
|
filePath.ExtensionLowered,
|
||||||
filePath.FullName,
|
filePath.FullName,
|
||||||
|
@ -5,7 +5,7 @@ using View_by_Distance.Shared.Models.Stateless.Methods;
|
|||||||
namespace View_by_Distance.Shared.Models;
|
namespace View_by_Distance.Shared.Models;
|
||||||
|
|
||||||
public record FilePath(long CreationTicks,
|
public record FilePath(long CreationTicks,
|
||||||
string DirectoryName,
|
string DirectoryFullPath,
|
||||||
string ExtensionLowered,
|
string ExtensionLowered,
|
||||||
string FileNameFirstSegment,
|
string FileNameFirstSegment,
|
||||||
string FullName,
|
string FullName,
|
||||||
@ -39,7 +39,7 @@ public record FilePath(long CreationTicks,
|
|||||||
int? sortOder;
|
int? sortOder;
|
||||||
string fileNameFirstSegment = fileHolder.Name.Split('.')[0];
|
string fileNameFirstSegment = fileHolder.Name.Split('.')[0];
|
||||||
int sortOrderOnlyLengthIndex = propertyConfiguration.Offset.ToString().Length;
|
int sortOrderOnlyLengthIndex = propertyConfiguration.Offset.ToString().Length;
|
||||||
string fileDirectoryName = fileHolder.DirectoryName ?? throw new NullReferenceException();
|
string fileDirectoryName = fileHolder.DirectoryFullPath ?? throw new NullReferenceException();
|
||||||
bool isIntelligentIdFormat = IId.NameWithoutExtensionIsIntelligentIdFormat(propertyConfiguration, fileNameFirstSegment);
|
bool isIntelligentIdFormat = IId.NameWithoutExtensionIsIntelligentIdFormat(propertyConfiguration, fileNameFirstSegment);
|
||||||
bool isPaddedIntelligentIdFormat = IId.NameWithoutExtensionIsPaddedIntelligentIdFormat(propertyConfiguration, sortOrderOnlyLengthIndex, fileNameFirstSegment);
|
bool isPaddedIntelligentIdFormat = IId.NameWithoutExtensionIsPaddedIntelligentIdFormat(propertyConfiguration, sortOrderOnlyLengthIndex, fileNameFirstSegment);
|
||||||
bool fileNameFirstSegmentIsIdFormat = !isPaddedIntelligentIdFormat && !isIntelligentIdFormat && IId.NameWithoutExtensionIsIdFormat(propertyConfiguration, fileHolder);
|
bool fileNameFirstSegmentIsIdFormat = !isPaddedIntelligentIdFormat && !isIntelligentIdFormat && IId.NameWithoutExtensionIsIdFormat(propertyConfiguration, fileHolder);
|
||||||
|
@ -92,7 +92,7 @@ internal abstract class Container
|
|||||||
}
|
}
|
||||||
if (filePath.HasIgnoreKeyword is not null && filePath.HasIgnoreKeyword.Value != shouldIgnore.Value)
|
if (filePath.HasIgnoreKeyword is not null && filePath.HasIgnoreKeyword.Value != shouldIgnore.Value)
|
||||||
{
|
{
|
||||||
if (filePath.DirectoryName.Contains("Results") && filePath.DirectoryName.Contains("Resize"))
|
if (filePath.DirectoryFullPath.Contains("Results") && filePath.DirectoryFullPath.Contains("Resize"))
|
||||||
File.Delete(filePath.FullName);
|
File.Delete(filePath.FullName);
|
||||||
else
|
else
|
||||||
throw new NotSupportedException($"Rename File! <{filePath.FileNameFirstSegment}>");
|
throw new NotSupportedException($"Rename File! <{filePath.FileNameFirstSegment}>");
|
||||||
@ -144,7 +144,7 @@ internal abstract class Container
|
|||||||
{
|
{
|
||||||
if (filePaths.Count == 0)
|
if (filePaths.Count == 0)
|
||||||
continue;
|
continue;
|
||||||
directory = filePaths[0].DirectoryName;
|
directory = filePaths[0].DirectoryFullPath;
|
||||||
if (directory is null)
|
if (directory is null)
|
||||||
continue;
|
continue;
|
||||||
if (!directories.Contains(directory))
|
if (!directories.Contains(directory))
|
||||||
@ -159,10 +159,10 @@ internal abstract class Container
|
|||||||
List<FilePair> filePairs = GetFilePairs(dlibDotNet, propertyConfiguration, aPropertySingletonDirectory, filesCollectionDirectory, filePathsCollection, directorySearchFilter);
|
List<FilePair> filePairs = GetFilePairs(dlibDotNet, propertyConfiguration, aPropertySingletonDirectory, filesCollectionDirectory, filePathsCollection, directorySearchFilter);
|
||||||
foreach (FilePair filePair in filePairs)
|
foreach (FilePair filePair in filePairs)
|
||||||
{
|
{
|
||||||
if (!directoryToItems.TryGetValue(filePair.FilePath.DirectoryName, out items))
|
if (!directoryToItems.TryGetValue(filePair.FilePath.DirectoryFullPath, out items))
|
||||||
{
|
{
|
||||||
directoryToItems.Add(filePair.FilePath.DirectoryName, []);
|
directoryToItems.Add(filePair.FilePath.DirectoryFullPath, []);
|
||||||
if (!directoryToItems.TryGetValue(filePair.FilePath.DirectoryName, out items))
|
if (!directoryToItems.TryGetValue(filePair.FilePath.DirectoryFullPath, out items))
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
}
|
}
|
||||||
items.Add(filePair.Item);
|
items.Add(filePair.Item);
|
||||||
|
@ -37,7 +37,7 @@ public interface IFileHolder
|
|||||||
Get(filePath);
|
Get(filePath);
|
||||||
static Models.FileHolder Get(FilePath filePath) =>
|
static Models.FileHolder Get(FilePath filePath) =>
|
||||||
new(new(filePath.CreationTicks),
|
new(new(filePath.CreationTicks),
|
||||||
filePath.DirectoryName,
|
filePath.DirectoryFullPath,
|
||||||
true,
|
true,
|
||||||
filePath.ExtensionLowered,
|
filePath.ExtensionLowered,
|
||||||
filePath.FullName,
|
filePath.FullName,
|
||||||
|
@ -26,14 +26,14 @@ public interface IId
|
|||||||
string TestStatic_GetIgnoreFullPath(FilePath filePath, Models.FileHolder fileHolder) =>
|
string TestStatic_GetIgnoreFullPath(FilePath filePath, Models.FileHolder fileHolder) =>
|
||||||
GetIgnoreFullPath(filePath, fileHolder);
|
GetIgnoreFullPath(filePath, fileHolder);
|
||||||
static string GetIgnoreFullPath(FilePath filePath, Models.FileHolder fileHolder) =>
|
static string GetIgnoreFullPath(FilePath filePath, Models.FileHolder fileHolder) =>
|
||||||
fileHolder.DirectoryName is null ?
|
fileHolder.DirectoryFullPath is null ?
|
||||||
throw new NotSupportedException() :
|
throw new NotSupportedException() :
|
||||||
filePath.Id > -1 ?
|
filePath.Id > -1 ?
|
||||||
fileHolder.NameWithoutExtension[^1] == '9' ?
|
fileHolder.NameWithoutExtension[^1] == '9' ?
|
||||||
Path.Combine(fileHolder.DirectoryName, $"{fileHolder.NameWithoutExtension[..^1]}8{fileHolder.ExtensionLowered}") :
|
Path.Combine(fileHolder.DirectoryFullPath, $"{fileHolder.NameWithoutExtension[..^1]}8{fileHolder.ExtensionLowered}") :
|
||||||
throw new NotSupportedException("High") :
|
throw new NotSupportedException("High") :
|
||||||
fileHolder.NameWithoutExtension[^1] == '1' ?
|
fileHolder.NameWithoutExtension[^1] == '1' ?
|
||||||
Path.Combine(fileHolder.DirectoryName, $"{fileHolder.NameWithoutExtension[..^1]}2{fileHolder.ExtensionLowered}") :
|
Path.Combine(fileHolder.DirectoryFullPath, $"{fileHolder.NameWithoutExtension[..^1]}2{fileHolder.ExtensionLowered}") :
|
||||||
throw new NotSupportedException("Low");
|
throw new NotSupportedException("Low");
|
||||||
|
|
||||||
bool TestStatic_NameWithoutExtensionIsIntelligentIdFormat(Properties.IPropertyConfiguration propertyConfiguration, string fileNameFirstSegment) =>
|
bool TestStatic_NameWithoutExtensionIsIntelligentIdFormat(Properties.IPropertyConfiguration propertyConfiguration, string fileNameFirstSegment) =>
|
||||||
|
@ -18,11 +18,6 @@ public interface IProperty
|
|||||||
static (int Season, string seasonName) GetSeason(int dayOfYear) =>
|
static (int Season, string seasonName) GetSeason(int dayOfYear) =>
|
||||||
Property.GetSeason(dayOfYear);
|
Property.GetSeason(dayOfYear);
|
||||||
|
|
||||||
(int Season, string seasonName) TestStatic_GetSeasonAB(int dayOfYear) =>
|
|
||||||
GetSeasonAB(dayOfYear);
|
|
||||||
static (int Season, string seasonName) GetSeasonAB(int dayOfYear) =>
|
|
||||||
Property.GetSeasonAB(dayOfYear);
|
|
||||||
|
|
||||||
string TestStatic_GetDiffRootDirectory(string diffPropertyDirectory) =>
|
string TestStatic_GetDiffRootDirectory(string diffPropertyDirectory) =>
|
||||||
GetDiffRootDirectory(diffPropertyDirectory);
|
GetDiffRootDirectory(diffPropertyDirectory);
|
||||||
static string GetDiffRootDirectory(string diffPropertyDirectory) =>
|
static string GetDiffRootDirectory(string diffPropertyDirectory) =>
|
||||||
|
@ -8,26 +8,13 @@ internal abstract class Property
|
|||||||
(int Season, string seasonName) result = dayOfYear switch
|
(int Season, string seasonName) result = dayOfYear switch
|
||||||
{
|
{
|
||||||
< 78 => new(0, "Winter"),
|
< 78 => new(0, "Winter"),
|
||||||
< 171 => new(1, "Spring"),
|
< 124 => new(1, "Spring"),
|
||||||
< 264 => new(2, "Summer"),
|
< 171 => new(2, "Spring"),
|
||||||
< 354 => new(3, "Fall"),
|
< 217 => new(3, "Summer"),
|
||||||
_ => new(4, "Winter")
|
< 264 => new(4, "Summer"),
|
||||||
};
|
< 309 => new(5, "Fall"),
|
||||||
return result;
|
< 354 => new(6, "Fall"),
|
||||||
}
|
_ => new(7, "Winter")
|
||||||
|
|
||||||
internal static (int Season, string seasonName) GetSeasonAB(int dayOfYear)
|
|
||||||
{
|
|
||||||
(int Season, string seasonName) result = dayOfYear switch
|
|
||||||
{
|
|
||||||
< 78 => new(0, "WinterA"),
|
|
||||||
< 124 => new(1, "SpringA"),
|
|
||||||
< 171 => new(1, "SpringB"),
|
|
||||||
< 217 => new(2, "SummerA"),
|
|
||||||
< 264 => new(2, "SummerB"),
|
|
||||||
< 309 => new(3, "FallA"),
|
|
||||||
< 354 => new(3, "FallB"),
|
|
||||||
_ => new(4, "WinterB")
|
|
||||||
};
|
};
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -351,10 +351,10 @@ internal abstract partial class XDirectory
|
|||||||
{
|
{
|
||||||
tick?.Invoke();
|
tick?.Invoke();
|
||||||
filePath = sortedRecords[i];
|
filePath = sortedRecords[i];
|
||||||
if (filePath.Name.EndsWith("len") || filePath.ExtensionLowered == ".id" || filePath.ExtensionLowered == ".lsv" || filePath.DirectoryName is null)
|
if (filePath.Name.EndsWith("len") || filePath.ExtensionLowered == ".id" || filePath.ExtensionLowered == ".lsv" || filePath.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
(_, directoryIndex) = IPath.GetDirectoryNameAndIndex(propertyConfiguration, filePath);
|
(_, directoryIndex) = IPath.GetDirectoryNameAndIndex(propertyConfiguration, filePath);
|
||||||
fileDirectoryName = Path.GetFileName(filePath.DirectoryName);
|
fileDirectoryName = Path.GetFileName(filePath.DirectoryFullPath);
|
||||||
if (fileDirectoryName.Length < propertyConfiguration.ResultAllInOneSubdirectoryLength + 3 || !filePath.Name.StartsWith(fileDirectoryName))
|
if (fileDirectoryName.Length < propertyConfiguration.ResultAllInOneSubdirectoryLength + 3 || !filePath.Name.StartsWith(fileDirectoryName))
|
||||||
{
|
{
|
||||||
if (wrapped)
|
if (wrapped)
|
||||||
@ -367,10 +367,10 @@ internal abstract partial class XDirectory
|
|||||||
wrapped = true;
|
wrapped = true;
|
||||||
directory = Path.Combine(directories[directoryIndex], fileDirectoryName);
|
directory = Path.Combine(directories[directoryIndex], fileDirectoryName);
|
||||||
}
|
}
|
||||||
if (ifCanUseId && filePath.IsIntelligentIdFormat && filePath.Id is not null && filePath.DirectoryName is not null)
|
if (ifCanUseId && filePath.IsIntelligentIdFormat && filePath.Id is not null && filePath.DirectoryFullPath is not null)
|
||||||
{
|
{
|
||||||
paddedId = IId.GetPaddedId(propertyConfiguration, filePath.Id.Value, filePath.HasIgnoreKeyword, filePath.HasDateTimeOriginal, i);
|
paddedId = IId.GetPaddedId(propertyConfiguration, filePath.Id.Value, filePath.HasIgnoreKeyword, filePath.HasDateTimeOriginal, i);
|
||||||
paddedIdFile = Path.Combine(filePath.DirectoryName, $"{paddedId}{filePath.ExtensionLowered}");
|
paddedIdFile = Path.Combine(filePath.DirectoryFullPath, $"{paddedId}{filePath.ExtensionLowered}");
|
||||||
if (!File.Exists(paddedIdFile))
|
if (!File.Exists(paddedIdFile))
|
||||||
{
|
{
|
||||||
File.Move(filePath.FullName, paddedIdFile);
|
File.Move(filePath.FullName, paddedIdFile);
|
||||||
@ -392,10 +392,10 @@ internal abstract partial class XDirectory
|
|||||||
checkFile = Path.Combine(directory, $"{intelligentId}{filePath.ExtensionLowered}");
|
checkFile = Path.Combine(directory, $"{intelligentId}{filePath.ExtensionLowered}");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (filePath.DirectoryName is null)
|
if (filePath.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
paddedId = IId.GetPaddedId(propertyConfiguration, filePath.Id.Value, filePath.HasIgnoreKeyword, filePath.HasDateTimeOriginal, i);
|
paddedId = IId.GetPaddedId(propertyConfiguration, filePath.Id.Value, filePath.HasIgnoreKeyword, filePath.HasDateTimeOriginal, i);
|
||||||
paddedIdFile = Path.Combine(filePath.DirectoryName, $"{paddedId}{filePath.ExtensionLowered}");
|
paddedIdFile = Path.Combine(filePath.DirectoryFullPath, $"{paddedId}{filePath.ExtensionLowered}");
|
||||||
if (File.Exists(paddedIdFile))
|
if (File.Exists(paddedIdFile))
|
||||||
continue;
|
continue;
|
||||||
File.Move(filePath.FullName, paddedIdFile);
|
File.Move(filePath.FullName, paddedIdFile);
|
||||||
@ -406,7 +406,7 @@ internal abstract partial class XDirectory
|
|||||||
}
|
}
|
||||||
if ((filePath.Id is not null && distinctIds.Contains(filePath.Id.Value)) || distinct.Contains(checkFile))
|
if ((filePath.Id is not null && distinctIds.Contains(filePath.Id.Value)) || distinct.Contains(checkFile))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(filePath.DirectoryName))
|
if (string.IsNullOrEmpty(filePath.DirectoryFullPath))
|
||||||
continue;
|
continue;
|
||||||
if (!copyDuplicates)
|
if (!copyDuplicates)
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user