parent
62c3e5c6a2
commit
38ac68dbb7
@ -0,0 +1,36 @@
|
||||
using System.IO;
|
||||
using System.IO.Abstractions;
|
||||
|
||||
namespace 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.FromFileName(fileName);
|
||||
fileInfo.Attributes = FileAttributes.Normal;
|
||||
fileInfo.Delete();
|
||||
}
|
||||
|
||||
_fileSystem.Directory.Delete(directory);
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
namespace Common;
|
||||
|
||||
public interface IFileUtilities
|
||||
{
|
||||
void DeleteReadOnlyDirectory(string directory);
|
||||
}
|
Loading…
Reference in new issue