Browse Source

Use helper

Shadowghost 1 year ago
parent
commit
feb20c131a

+ 3 - 3
Emby.Server.Implementations/IO/ManagedFileSystem.cs

@@ -389,7 +389,7 @@ namespace Emby.Server.Implementations.IO
             var info = new FileInfo(path);
 
             if (info.Exists &&
-                ((info.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) != isHidden)
+                (info.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden != isHidden)
             {
                 if (isHidden)
                 {
@@ -417,8 +417,8 @@ namespace Emby.Server.Implementations.IO
                 return;
             }
 
-            if (((info.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) == readOnly
-                && ((info.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) == isHidden)
+            if ((info.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly == readOnly
+                && (info.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden == isHidden)
             {
                 return;
             }

+ 3 - 41
Emby.Server.Implementations/ScheduledTasks/Tasks/DeleteCacheFileTask.cs

@@ -5,6 +5,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Common.Configuration;
+using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.Globalization;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Tasks;
@@ -133,53 +134,14 @@ namespace Emby.Server.Implementations.ScheduledTasks.Tasks
 
                 cancellationToken.ThrowIfCancellationRequested();
 
-                DeleteFile(file.FullName);
+                FileSystemHelper.DeleteFile(_fileSystem, file.FullName, _logger);
 
                 index++;
             }
 
-            DeleteEmptyFolders(directory);
+            FileSystemHelper.DeleteEmptyFolders(_fileSystem, directory, _logger);
 
             progress.Report(100);
         }
-
-        private void DeleteEmptyFolders(string parent)
-        {
-            foreach (var directory in _fileSystem.GetDirectoryPaths(parent))
-            {
-                DeleteEmptyFolders(directory);
-                if (!_fileSystem.GetFileSystemEntryPaths(directory).Any())
-                {
-                    try
-                    {
-                        Directory.Delete(directory, false);
-                    }
-                    catch (UnauthorizedAccessException ex)
-                    {
-                        _logger.LogError(ex, "Error deleting directory {Path}", directory);
-                    }
-                    catch (IOException ex)
-                    {
-                        _logger.LogError(ex, "Error deleting directory {Path}", directory);
-                    }
-                }
-            }
-        }
-
-        private void DeleteFile(string path)
-        {
-            try
-            {
-                _fileSystem.DeleteFile(path);
-            }
-            catch (UnauthorizedAccessException ex)
-            {
-                _logger.LogError(ex, "Error deleting file {Path}", path);
-            }
-            catch (IOException ex)
-            {
-                _logger.LogError(ex, "Error deleting file {Path}", path);
-            }
-        }
     }
 }

+ 3 - 42
Emby.Server.Implementations/ScheduledTasks/Tasks/DeleteTranscodeFileTask.cs

@@ -1,10 +1,10 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Common.Configuration;
+using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.Globalization;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Tasks;
@@ -113,53 +113,14 @@ namespace Emby.Server.Implementations.ScheduledTasks.Tasks
 
                 cancellationToken.ThrowIfCancellationRequested();
 
-                DeleteFile(file.FullName);
+                FileSystemHelper.DeleteFile(_fileSystem, file.FullName, _logger);
 
                 index++;
             }
 
-            DeleteEmptyFolders(directory);
+            FileSystemHelper.DeleteEmptyFolders(_fileSystem, directory, _logger);
 
             progress.Report(100);
         }
-
-        private void DeleteEmptyFolders(string parent)
-        {
-            foreach (var directory in _fileSystem.GetDirectoryPaths(parent))
-            {
-                DeleteEmptyFolders(directory);
-                if (!_fileSystem.GetFileSystemEntryPaths(directory).Any())
-                {
-                    try
-                    {
-                        Directory.Delete(directory, false);
-                    }
-                    catch (UnauthorizedAccessException ex)
-                    {
-                        _logger.LogError(ex, "Error deleting directory {Path}", directory);
-                    }
-                    catch (IOException ex)
-                    {
-                        _logger.LogError(ex, "Error deleting directory {Path}", directory);
-                    }
-                }
-            }
-        }
-
-        private void DeleteFile(string path)
-        {
-            try
-            {
-                _fileSystem.DeleteFile(path);
-            }
-            catch (UnauthorizedAccessException ex)
-            {
-                _logger.LogError(ex, "Error deleting file {Path}", path);
-            }
-            catch (IOException ex)
-            {
-                _logger.LogError(ex, "Error deleting file {Path}", path);
-            }
-        }
     }
 }

+ 64 - 0
MediaBrowser.Controller/IO/FileSystemHelper.cs

@@ -0,0 +1,64 @@
+using System;
+using System.IO;
+using System.Linq;
+using MediaBrowser.Model.IO;
+using Microsoft.Extensions.Logging;
+
+namespace MediaBrowser.Controller.IO;
+
+/// <summary>
+/// Helper methods for file system management.
+/// </summary>
+public static class FileSystemHelper
+{
+    /// <summary>
+    /// Deletes the file.
+    /// </summary>
+    /// <param name="fileSystem">The fileSystem.</param>
+    /// <param name="path">The path.</param>
+    /// <param name="logger">The logger.</param>
+    public static void DeleteFile(IFileSystem fileSystem, string path, ILogger logger)
+    {
+        try
+        {
+            fileSystem.DeleteFile(path);
+        }
+        catch (UnauthorizedAccessException ex)
+        {
+            logger.LogError(ex, "Error deleting file {Path}", path);
+        }
+        catch (IOException ex)
+        {
+            logger.LogError(ex, "Error deleting file {Path}", path);
+        }
+    }
+
+    /// <summary>
+    /// Recursively delete empty folders.
+    /// </summary>
+    /// <param name="fileSystem">The fileSystem.</param>
+    /// <param name="path">The path.</param>
+    /// <param name="logger">The logger.</param>
+    public static void DeleteEmptyFolders(IFileSystem fileSystem, string path, ILogger logger)
+    {
+        foreach (var directory in fileSystem.GetDirectoryPaths(path))
+        {
+            DeleteEmptyFolders(fileSystem, directory, logger);
+            if (!fileSystem.GetFileSystemEntryPaths(directory).Any())
+            {
+                try
+                {
+                    Directory.Delete(directory, false);
+                }
+                catch (UnauthorizedAccessException ex)
+                {
+                    logger.LogError(ex, "Error deleting directory {Path}", directory);
+                }
+                catch (IOException ex)
+                {
+                    logger.LogError(ex, "Error deleting directory {Path}", directory);
+                }
+            }
+        }
+    }
+}

+ 2 - 4
MediaBrowser.Providers/Manager/ImageSaver.cs

@@ -14,6 +14,7 @@ using MediaBrowser.Common.Configuration;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.IO;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Model.Configuration;
 using MediaBrowser.Model.Entities;
@@ -190,10 +191,7 @@ namespace MediaBrowser.Providers.Manager
 
                     // Remove containing directory if empty
                     var folder = Path.GetDirectoryName(currentPath);
-                    if (Directory.Exists(folder) && !_fileSystem.GetFiles(folder, true).Any())
-                    {
-                        Directory.Delete(folder, true);
-                    }
+                    FileSystemHelper.DeleteEmptyFolders(_fileSystem, folder, _logger);
                 }
                 catch (FileNotFoundException)
                 {

+ 2 - 4
MediaBrowser.Providers/Manager/ItemImageProvider.cs

@@ -10,6 +10,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.IO;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.LiveTv;
 using MediaBrowser.Controller.Providers;
@@ -381,10 +382,7 @@ namespace MediaBrowser.Providers.Manager
                     {
                         // Always remove empty parent folder
                         var folder = Path.GetDirectoryName(image.Path);
-                        if (Directory.Exists(folder) && !_fileSystem.GetFiles(folder, true).Any())
-                        {
-                            Directory.Delete(folder, true);
-                        }
+                        FileSystemHelper.DeleteEmptyFolders(_fileSystem, folder, _logger);
                     }
                 }
             }