- Add Sign, BugFix

Directory DeepMove
This commit is contained in:
2023-03-08 00:02:29 +09:00
parent db5a1cff63
commit 5f0ee1e4b9
3 changed files with 43 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
using System.Text;
using System.IO;
using System.Text;
namespace CommonLibrary
{
@@ -57,5 +58,40 @@ namespace CommonLibrary
{
return default(T).Equals(data);
}
public static void DeepMove(this DirectoryInfo sourceDirectoryInfo, DirectoryInfo targetDirectoryInfo)
{
if (!sourceDirectoryInfo.Exists)
{
return;
}
if (sourceDirectoryInfo.Root == targetDirectoryInfo.Root)
{
sourceDirectoryInfo.MoveTo(targetDirectoryInfo.FullName);
return;
}
DirectoryInfo[] directoryInfos = sourceDirectoryInfo.GetDirectories("*", SearchOption.AllDirectories);
FileInfo[] fileInfos = sourceDirectoryInfo.GetFiles("*", SearchOption.AllDirectories);
foreach (var directoryInfo in directoryInfos)
{
DirectoryInfo targetDirectory = new DirectoryInfo(directoryInfo.FullName.Replace(sourceDirectoryInfo.FullName, targetDirectoryInfo.FullName));
if (!targetDirectory.Exists)
{
targetDirectory.Create();
}
}
foreach (var file in fileInfos)
{
DirectoryInfo targetDirectory = new DirectoryInfo(file.DirectoryName.Replace(sourceDirectoryInfo.FullName, targetDirectoryInfo.FullName));
string targetFileName = System.IO.Path.Combine(targetDirectory.FullName, file.Name);
file.CopyTo(targetFileName, true);
}
sourceDirectoryInfo.Delete(true);
}
}
}