Readonly
This commit is contained in:
parent
db24568cb4
commit
5eac175e4b
@ -1,5 +1,6 @@
|
|||||||
using File_Folder_Helper.Helpers;
|
using File_Folder_Helper.Helpers;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
@ -54,7 +55,7 @@ internal static partial class Helper20240427
|
|||||||
string checkDirectory = home;
|
string checkDirectory = home;
|
||||||
string sourceDirectory = home;
|
string sourceDirectory = home;
|
||||||
string originalFileNameWithoutExtension = Path.GetFileNameWithoutExtension(originalFileName);
|
string originalFileNameWithoutExtension = Path.GetFileNameWithoutExtension(originalFileName);
|
||||||
List<string> directoryNames = HelperDirectory.GetDirectoryNames(path);
|
ReadOnlyCollection<string> directoryNames = HelperDirectory.GetDirectoryNames(path);
|
||||||
for (int i = 0; i < directoryNames.Count; i++)
|
for (int i = 0; i < directoryNames.Count; i++)
|
||||||
{
|
{
|
||||||
if (directoryNames[i] != lastVarDirectoryName)
|
if (directoryNames[i] != lastVarDirectoryName)
|
||||||
@ -99,7 +100,7 @@ internal static partial class Helper20240427
|
|||||||
private static void MoveAssets(ILogger<Worker> logger, string var, string home, string pictures, List<Asset> assets)
|
private static void MoveAssets(ILogger<Worker> logger, string var, string home, string pictures, List<Asset> assets)
|
||||||
{
|
{
|
||||||
string? checkFile;
|
string? checkFile;
|
||||||
List<string> varDirectoryNames = HelperDirectory.GetDirectoryNames(home);
|
ReadOnlyCollection<string> varDirectoryNames = HelperDirectory.GetDirectoryNames(home);
|
||||||
string lastVarDirectoryName = varDirectoryNames[^1];
|
string lastVarDirectoryName = varDirectoryNames[^1];
|
||||||
foreach (Asset asset in assets)
|
foreach (Asset asset in assets)
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
namespace File_Folder_Helper.Day.Q32024;
|
namespace File_Folder_Helper.Day.Q32024;
|
||||||
|
|
||||||
@ -7,23 +8,39 @@ internal static partial class Helper20240910
|
|||||||
|
|
||||||
internal static void MoveFilesToWeekOfYear(ILogger<Worker> logger, List<string> args)
|
internal static void MoveFilesToWeekOfYear(ILogger<Worker> logger, List<string> args)
|
||||||
{
|
{
|
||||||
|
string day;
|
||||||
|
string year;
|
||||||
string checkFile;
|
string checkFile;
|
||||||
|
FileInfo fileInfo;
|
||||||
string weekOfYear;
|
string weekOfYear;
|
||||||
string checkDirectory;
|
string checkDirectory;
|
||||||
string searchPattern = args[2];
|
|
||||||
string sourceDirectory = args[0];
|
string sourceDirectory = args[0];
|
||||||
|
ReadOnlyCollection<string> directoryNames;
|
||||||
|
string searchPattern = Path.GetFullPath(args[2]);
|
||||||
Calendar calendar = new CultureInfo("en-US").Calendar;
|
Calendar calendar = new CultureInfo("en-US").Calendar;
|
||||||
string[] files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories);
|
string[] files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories);
|
||||||
logger.LogInformation("With search pattern '{SearchPattern}' found {files}", searchPattern, files.Length);
|
logger.LogInformation("With search pattern '{SearchPattern}' found {files}", searchPattern, files.Length);
|
||||||
FileInfo[] collection = files.Select(l => new FileInfo(l)).ToArray();
|
foreach (string file in files)
|
||||||
foreach (FileInfo fileInfo in collection)
|
|
||||||
{
|
{
|
||||||
|
fileInfo = new(file);
|
||||||
|
if (string.IsNullOrEmpty(fileInfo.DirectoryName))
|
||||||
|
continue;
|
||||||
|
checkDirectory = string.Empty;
|
||||||
|
year = fileInfo.LastWriteTime.ToString("yyyy");
|
||||||
|
day = fileInfo.LastWriteTime.ToString("yyyy-MM-dd");
|
||||||
|
directoryNames = Helpers.HelperDirectory.GetDirectoryNames(fileInfo.DirectoryName);
|
||||||
weekOfYear = $"{fileInfo.LastWriteTime.Year}_Week_{calendar.GetWeekOfYear(fileInfo.LastWriteTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday):00}";
|
weekOfYear = $"{fileInfo.LastWriteTime.Year}_Week_{calendar.GetWeekOfYear(fileInfo.LastWriteTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday):00}";
|
||||||
checkDirectory = Path.Combine(sourceDirectory, weekOfYear, fileInfo.LastWriteTime.ToString("yyyy-MM-dd"));
|
foreach (string directoryName in directoryNames)
|
||||||
|
{
|
||||||
|
if (directoryName == year || directoryName == weekOfYear || directoryName == day)
|
||||||
|
continue;
|
||||||
|
checkDirectory = Path.Combine(checkDirectory, directoryName);
|
||||||
|
}
|
||||||
|
checkDirectory = Path.Combine(checkDirectory, year, weekOfYear, day);
|
||||||
if (!Directory.Exists(checkDirectory))
|
if (!Directory.Exists(checkDirectory))
|
||||||
_ = Directory.CreateDirectory(checkDirectory);
|
_ = Directory.CreateDirectory(checkDirectory);
|
||||||
checkFile = Path.Combine(checkDirectory, fileInfo.Name);
|
checkFile = Path.Combine(checkDirectory, fileInfo.Name);
|
||||||
if (checkFile == fileInfo.FullName)
|
if (checkFile.Length > 256 || checkFile == fileInfo.FullName)
|
||||||
continue;
|
continue;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -32,8 +49,9 @@ internal static partial class Helper20240910
|
|||||||
File.Move(fileInfo.FullName, checkFile);
|
File.Move(fileInfo.FullName, checkFile);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{ logger.LogInformation(ex, "Inner loop error!"); }
|
{ logger.LogInformation(ex, $"Inner loop error <{fileInfo.FullName}>!"); }
|
||||||
}
|
}
|
||||||
|
Helpers.HelperDeleteEmptyDirectories.DeleteEmptyDirectories(logger, sourceDirectory);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,9 +1,11 @@
|
|||||||
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
namespace File_Folder_Helper.Helpers;
|
namespace File_Folder_Helper.Helpers;
|
||||||
|
|
||||||
internal static class HelperDirectory
|
internal static class HelperDirectory
|
||||||
{
|
{
|
||||||
|
|
||||||
internal static List<string> GetDirectoryNames(string directory)
|
internal static ReadOnlyCollection<string> GetDirectoryNames(string directory)
|
||||||
{
|
{
|
||||||
List<string> results = [];
|
List<string> results = [];
|
||||||
string? fileName;
|
string? fileName;
|
||||||
@ -36,7 +38,7 @@ internal static class HelperDirectory
|
|||||||
}
|
}
|
||||||
results.Add(pathRoot);
|
results.Add(pathRoot);
|
||||||
results.Reverse();
|
results.Reverse();
|
||||||
return results;
|
return new(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user