mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
32 lines
962 B
C#
32 lines
962 B
C#
using System.IO;
|
|
|
|
namespace Artemis.Core.Extensions
|
|
{
|
|
public static class DirectoryInfoExtensions
|
|
{
|
|
public static void CopyFilesRecursively(this DirectoryInfo source, DirectoryInfo target)
|
|
{
|
|
foreach (var dir in source.GetDirectories())
|
|
CopyFilesRecursively(dir, target.CreateSubdirectory(dir.Name));
|
|
foreach (var file in source.GetFiles())
|
|
file.CopyTo(Path.Combine(target.FullName, file.Name));
|
|
}
|
|
|
|
public static void RecursiveDelete(this DirectoryInfo baseDir)
|
|
{
|
|
if (!baseDir.Exists)
|
|
return;
|
|
|
|
foreach (var dir in baseDir.EnumerateDirectories())
|
|
RecursiveDelete(dir);
|
|
var files = baseDir.GetFiles();
|
|
foreach (var file in files)
|
|
{
|
|
file.IsReadOnly = false;
|
|
file.Delete();
|
|
}
|
|
|
|
baseDir.Delete();
|
|
}
|
|
}
|
|
} |