如果我有路径,就像这样:
C:\ Windows \ System32下\ INETSRV \ abc.exe
我想在驱动器/路径下创建一个文件夹,例如
Z:\东西\
如何创建子目录并选择是否需要从Windows开始,从system32开始或从inetsrv开始的所有内容?顺便说一下,我知道DirectoryInfo
有一个名为CreateSubDirectory()
的方法。
由于
答案 0 :(得分:2)
您可以使用System.IO.Directory.CreateDirectory(path)。它是一个静态方法,与DirectoryInfo不同,您需要一个目录实例来调用它。
之后,您可以使用Xcopy或Robocopy复制所有文件和子目录。
答案 1 :(得分:1)
如果要将所有内容从一个目录复制到另一个目录,可以使用以下内容:
using System;
using System.Collections.Generic;
using System.IO;
namespace so_cp__r
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter path from where you want to copy:");
List<DirectoryInfo> fromDirs = new List<DirectoryInfo>();
DirectoryInfo dir = new FileInfo(Console.ReadLine()).Directory;
while (dir != null)
{
fromDirs.Add(dir);
dir = dir.Parent;
}
for (int i = 0; i < fromDirs.Count; i++)
Console.WriteLine("{0}: {1}", i, fromDirs[i].FullName);
Console.WriteLine("From which of these dirs do you want to start?");
DirectoryInfo fromDir = fromDirs[int.Parse(Console.ReadLine())];
Console.WriteLine("Where do you want to copy?");
DirectoryInfo toDir = new DirectoryInfo(Console.ReadLine());
recursive_copy(fromDir, toDir);
}
static void recursive_copy(DirectoryInfo fromDir, DirectoryInfo toDir)
{
DirectoryInfo child = toDir.CreateSubdirectory(fromDir.Name);
foreach (FileInfo file in fromDir.GetFiles())
file.CopyTo(child.FullName + Path.DirectorySeparatorChar + file.Name);
foreach (DirectoryInfo dir in fromDir.GetDirectories())
recursive_copy(dir, child);
}
}
}