我希望能够在 c# 3.5 中仅将文件夹结构(而不是内容)从一个位置复制到另一个位置
例如
C:\Some 文件夹
+ 文件夹 A
+ 子文件夹 A
+ 子文件夹 B
+ 子文件夹 B1
+ 子文件夹 B2
+ 子文件夹 C
到新位置
C:\一些新文件夹
+ 文件夹 A
+ 子文件夹 A
等等......等等。
您的意思是要创建相同的文件,而不是相同结构中的内容。
像这样的东西可能会起作用:
public static TotallyNotRecursiveAndCreateDirs(string root, string newRoot)
{
DirectoryInfo rootDir = new DirectoryInfo(Path.GetPathRoot(root));
DirectoryInfo[] dirs = rootDir.GetDirectories("*", SearchOption.AllDirectories);
foreach(DirectoryInfo dir in dirs)
{
Directory.CreateDirectory(dir.FullName.Replace(root, newRoot));
FileInfo[] files = dir.GetFiles("*.*", SearchOption.TopDirectoryOnly);
foreach(FileInfo file in files)
{
File.Create(file.FullName.Replace(root, newRoot));
}
}
}
您可能还想进行一些异常检查以确保 root 和 newRoot 参数有效(即:rooted 等...)
如果您不想要文件而只想要目录,那么只需删除第二个循环。
要将文件夹结构复制src
到dest
:
dest
.dest
以匹配src
。name
,src
将文件夹结构复制src\name
到dest\name
。