You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recyclarr/src/Recyclarr.Common/FileUtilities.cs

36 lines
871 B

using System.IO.Abstractions;
namespace Recyclarr.Common;
public class FileUtilities : IFileUtilities
{
private readonly IFileSystem _fileSystem;
public FileUtilities(IFileSystem fileSystem)
{
_fileSystem = fileSystem;
}
public void DeleteReadOnlyDirectory(string directory)
{
if (!_fileSystem.Directory.Exists(directory))
{
return;
}
foreach (var subdirectory in _fileSystem.Directory.EnumerateDirectories(directory))
{
DeleteReadOnlyDirectory(subdirectory);
}
foreach (var fileName in Directory.EnumerateFiles(directory))
{
var fileInfo = _fileSystem.FileInfo.New(fileName);
fileInfo.Attributes = FileAttributes.Normal;
fileInfo.Delete();
}
_fileSystem.Directory.Delete(directory);
}
}