< Summary - Jellyfin

Information
Class: MediaBrowser.Controller.IO.FileSystemHelper
Assembly: MediaBrowser.Controller
File(s): /srv/git/jellyfin/MediaBrowser.Controller/IO/FileSystemHelper.cs
Line coverage
9%
Covered lines: 2
Uncovered lines: 19
Coverable lines: 21
Total lines: 64
Line coverage: 9.5%
Branch coverage
50%
Covered branches: 2
Total branches: 4
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
DeleteFile(...)100%210%
DeleteEmptyFolders(...)50%13.26416.66%

File(s)

/srv/git/jellyfin/MediaBrowser.Controller/IO/FileSystemHelper.cs

#LineLine coverage
 1using System;
 2using System.IO;
 3using System.Linq;
 4using MediaBrowser.Model.IO;
 5using Microsoft.Extensions.Logging;
 6
 7namespace MediaBrowser.Controller.IO;
 8
 9/// <summary>
 10/// Helper methods for file system management.
 11/// </summary>
 12public static class FileSystemHelper
 13{
 14    /// <summary>
 15    /// Deletes the file.
 16    /// </summary>
 17    /// <param name="fileSystem">The fileSystem.</param>
 18    /// <param name="path">The path.</param>
 19    /// <param name="logger">The logger.</param>
 20    public static void DeleteFile(IFileSystem fileSystem, string path, ILogger logger)
 21    {
 22        try
 23        {
 024            fileSystem.DeleteFile(path);
 025        }
 026        catch (UnauthorizedAccessException ex)
 27        {
 028            logger.LogError(ex, "Error deleting file {Path}", path);
 029        }
 030        catch (IOException ex)
 31        {
 032            logger.LogError(ex, "Error deleting file {Path}", path);
 033        }
 034    }
 35
 36    /// <summary>
 37    /// Recursively delete empty folders.
 38    /// </summary>
 39    /// <param name="fileSystem">The fileSystem.</param>
 40    /// <param name="path">The path.</param>
 41    /// <param name="logger">The logger.</param>
 42    public static void DeleteEmptyFolders(IFileSystem fileSystem, string path, ILogger logger)
 43    {
 244        foreach (var directory in fileSystem.GetDirectoryPaths(path))
 45        {
 046            DeleteEmptyFolders(fileSystem, directory, logger);
 047            if (!fileSystem.GetFileSystemEntryPaths(directory).Any())
 48            {
 49                try
 50                {
 051                    Directory.Delete(directory, false);
 052                }
 053                catch (UnauthorizedAccessException ex)
 54                {
 055                    logger.LogError(ex, "Error deleting directory {Path}", directory);
 056                }
 057                catch (IOException ex)
 58                {
 059                    logger.LogError(ex, "Error deleting directory {Path}", directory);
 060                }
 61            }
 62        }
 163    }
 64}