浏览代码

Refactor file association logic and improve namespace structure: rename `FileTypeHelper` to `FileTypeGroupHelper`, move `FileAssociationManager` from `FileHandling` to `FileAssociations`, update related references, and enhance null-checks in `FileListRetriever`.

Ruben 4 月之前
父节点
当前提交
4d473f6a58

+ 1 - 1
src/PicView.Avalonia.MacOS/App.axaml.cs

@@ -14,7 +14,7 @@ using PicView.Avalonia.StartUp;
 using PicView.Avalonia.UI;
 using PicView.Avalonia.UI;
 using PicView.Avalonia.ViewModels;
 using PicView.Avalonia.ViewModels;
 using PicView.Avalonia.WindowBehavior;
 using PicView.Avalonia.WindowBehavior;
-using PicView.Core.FileHandling;
+using PicView.Core.FileAssociations;
 using PicView.Core.FileSorting;
 using PicView.Core.FileSorting;
 using PicView.Core.Localization;
 using PicView.Core.Localization;
 using PicView.Core.MacOS;
 using PicView.Core.MacOS;

+ 1 - 1
src/PicView.Avalonia.MacOS/Views/SettingsWindow.axaml.cs

@@ -3,7 +3,7 @@ using Avalonia.Input;
 using Avalonia.Media;
 using Avalonia.Media;
 using PicView.Avalonia.Input;
 using PicView.Avalonia.Input;
 using PicView.Avalonia.UI;
 using PicView.Avalonia.UI;
-using PicView.Core.FileHandling;
+using PicView.Core.FileAssociations;
 using PicView.Core.Localization;
 using PicView.Core.Localization;
 using PicView.Core.MacOS.FileAssociation;
 using PicView.Core.MacOS.FileAssociation;
 using PicView.Core.Sizing;
 using PicView.Core.Sizing;

+ 1 - 1
src/PicView.Avalonia.Win32/App.axaml.cs

@@ -12,7 +12,7 @@ using PicView.Avalonia.StartUp;
 using PicView.Avalonia.ViewModels;
 using PicView.Avalonia.ViewModels;
 using PicView.Avalonia.Win32.Views;
 using PicView.Avalonia.Win32.Views;
 using PicView.Avalonia.Win32.WindowImpl;
 using PicView.Avalonia.Win32.WindowImpl;
-using PicView.Core.FileHandling;
+using PicView.Core.FileAssociations;
 using PicView.Core.FileSorting;
 using PicView.Core.FileSorting;
 using PicView.Core.Localization;
 using PicView.Core.Localization;
 using PicView.Core.ProcessHandling;
 using PicView.Core.ProcessHandling;

+ 1 - 1
src/PicView.Avalonia.Win32/Views/SettingsWindow.axaml.cs

@@ -5,7 +5,7 @@ using Avalonia.Interactivity;
 using Avalonia.Media;
 using Avalonia.Media;
 using PicView.Avalonia.Input;
 using PicView.Avalonia.Input;
 using PicView.Avalonia.UI;
 using PicView.Avalonia.UI;
-using PicView.Core.FileHandling;
+using PicView.Core.FileAssociations;
 using PicView.Core.Localization;
 using PicView.Core.Localization;
 using PicView.Core.WindowsNT.FileAssociation;
 using PicView.Core.WindowsNT.FileAssociation;
 
 

+ 1 - 2
src/PicView.Core/FileHandling/FileAssociationManager.cs → src/PicView.Core/FileAssociations/FileAssociationManager.cs

@@ -1,7 +1,6 @@
 using PicView.Core.DebugTools;
 using PicView.Core.DebugTools;
-using PicView.Core.FileAssociations;
 
 
-namespace PicView.Core.FileHandling;
+namespace PicView.Core.FileAssociations;
 
 
 /// <summary>
 /// <summary>
 /// Platform-agnostic manager for file associations that delegates to platform-specific implementations
 /// Platform-agnostic manager for file associations that delegates to platform-specific implementations

+ 1 - 1
src/PicView.Core/FileAssociations/FileTypeHelper.cs → src/PicView.Core/FileAssociations/FileTypeGroupHelper.cs

@@ -2,7 +2,7 @@
 
 
 namespace PicView.Core.FileAssociations;
 namespace PicView.Core.FileAssociations;
 
 
-public static class FileTypeHelper
+public static class FileTypeGroupHelper
 {
 {
     public static FileTypeGroup[] GetFileTypes()
     public static FileTypeGroup[] GetFileTypes()
     {
     {

+ 6 - 2
src/PicView.Core/FileSorting/FileListRetriever.cs

@@ -8,7 +8,9 @@ public static class FileListRetriever
     public static IEnumerable<string> RetrieveFiles(FileInfo fileInfo)
     public static IEnumerable<string> RetrieveFiles(FileInfo fileInfo)
     {
     {
         if (fileInfo == null)
         if (fileInfo == null)
+        {
             return new List<string>();
             return new List<string>();
+        }
 
 
         // Check if the file is a directory or not
         // Check if the file is a directory or not
         var isDirectory = fileInfo.Attributes.HasFlag(FileAttributes.Directory);
         var isDirectory = fileInfo.Attributes.HasFlag(FileAttributes.Directory);
@@ -16,7 +18,9 @@ public static class FileListRetriever
         // Get the directory path based on whether the file is a directory or not
         // Get the directory path based on whether the file is a directory or not
         var directory = isDirectory ? fileInfo.FullName : fileInfo.DirectoryName;
         var directory = isDirectory ? fileInfo.FullName : fileInfo.DirectoryName;
         if (directory is null)
         if (directory is null)
+        {
             return new List<string>();
             return new List<string>();
+        }
 
 
         string[] enumerable;
         string[] enumerable;
         // Check if the subdirectories are to be included in the search
         // Check if the subdirectories are to be included in the search
@@ -31,7 +35,7 @@ public static class FileListRetriever
                 files = Directory.EnumerateFiles(directory, "*.*", new EnumerationOptions
                 files = Directory.EnumerateFiles(directory, "*.*", new EnumerationOptions
                 {
                 {
                     AttributesToSkip = default, // Pick up hidden files
                     AttributesToSkip = default, // Pick up hidden files
-                    RecurseSubdirectories = true,
+                    RecurseSubdirectories = true
                 }).AsParallel();
                 }).AsParallel();
             }
             }
             else
             else
@@ -47,7 +51,7 @@ public static class FileListRetriever
         }
         }
         catch (Exception exception)
         catch (Exception exception)
         {
         {
-            DebugHelper.LogDebug(nameof(FileSortHelper), nameof(RetrieveFiles), exception);
+            DebugHelper.LogDebug(nameof(FileListRetriever), nameof(RetrieveFiles), exception);
             return new List<string>();
             return new List<string>();
         }
         }
 
 

+ 4 - 4
src/PicView.Core/ViewModels/FileAssociationsViewModel.cs

@@ -165,11 +165,11 @@ public class FileAssociationsViewModel : ReactiveObject
     #region Initialize and filtering
     #region Initialize and filtering
     
     
     /// <summary>
     /// <summary>
-    /// Initializes file type groups by loading default file types from <see cref="FileTypeHelper"/>.
+    /// Initializes file type groups by loading default file types from <see cref="FileTypeGroupHelper"/>.
     /// </summary>
     /// </summary>
     private void InitializeFileTypes()
     private void InitializeFileTypes()
     {
     {
-        var groups = FileTypeHelper.GetFileTypes();
+        var groups = FileTypeGroupHelper.GetFileTypes();
         
         
         _fileTypeGroupsList.Edit(list =>
         _fileTypeGroupsList.Edit(list =>
         {
         {
@@ -236,7 +236,7 @@ public class FileAssociationsViewModel : ReactiveObject
     }
     }
     
     
     /// <summary>
     /// <summary>
-    /// Resets all file type selections to their default state as defined by <see cref="FileTypeHelper.GetFileTypes"/>.
+    /// Resets all file type selections to their default state as defined by <see cref="FileTypeGroupHelper.GetFileTypes"/>.
     /// </summary>
     /// </summary>
     /// <remarks>
     /// <remarks>
     /// This method uses snapshots of collections to avoid enumeration modification exceptions.
     /// This method uses snapshots of collections to avoid enumeration modification exceptions.
@@ -244,7 +244,7 @@ public class FileAssociationsViewModel : ReactiveObject
     private void ResetFileTypesToDefault()
     private void ResetFileTypesToDefault()
     {
     {
         // Get fresh default file types
         // Get fresh default file types
-        var defaultGroups = FileTypeHelper.GetFileTypes();
+        var defaultGroups = FileTypeGroupHelper.GetFileTypes();
         
         
         // Use snapshot to get current groups to avoid enumeration issues
         // Use snapshot to get current groups to avoid enumeration issues
         var currentGroups = FileTypeGroups.ToArray();
         var currentGroups = FileTypeGroups.ToArray();