我在一些驱动器中有一些文件夹/文件,如
C:\New Folder
C:\a.txt
D:\New Folder\New Folder
D:\New Folder\a.txt
现在我想在c盘中创建一个看起来像
的目录树C:\mytempFolder\driveC\New Folder
C:\mytempFolder\driveC\a.txt
C:\mytempFolder\driveD\New Folder\New Folder
C:\mytempFolder\driveD\New Folder\a.txt
有没有快捷方式在c#中实现这个?
答案 0 :(得分:3)
if(System.IO.Directory.Exists("c://gg"))
{
System.IO.Directory.CreateDirectory("C:\\gg//");
System.IO.File.Create("C:\\gg//file.txt");
}
else
{
Response.Write("ALREADY FOLDER EXIST");
}
答案 1 :(得分:3)
使用Directory.Create创建目录:
Directory.Create("c:\mytempFolder\driveC\New Folder");
要创建文件,您必须将文本文件写入该位置,如下所示:
File.Create("D:\New Folder\a.txt").Close;
(它返回一个FileSream,所以记得以后关闭它或者你将锁定文件)
修改强>
好的,我明白你的意思了。在这种情况下你需要做这样的事情:
Loop all files in directory and its sub directories
当您遇到文件或文件夹时,您需要使用上述命令在目标文件夹(即c:\ mytempFolder)中创建它。要获得驱动器,您只需获取路径字符串中的第一个字符(假设它始终具有驱动器号)。
这是一种简单的方法,但您可能需要调整它以解决文件路径不一致问题:
string targetPath = @"C:\mytempFolder\";
string path = @"D:\New Folder\a.txt";
char driveLetter = path[0];
string filePath = path.SubString(3);
string newFilePath = Path.Combine(targetPath, Path.Combine(String.Format("drive{0}", driveLetter.ToString()), filePath));