在c#中创建文件/目录

时间:2011-06-21 09:38:26

标签: c# file directory

我在一些驱动器中有一些文件夹/文件,如

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#中实现这个?

2 个答案:

答案 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));