我在几个驱动器中有一些文件夹/文件,比如
C:New Folder
C:a.txt
D:New FolderNew Folder
D:New Foldera.txt
现在我想在c驱动器中创建一个目录树,看起来像
C:mytempFolderdriveCNew Folder
C:mytempFolderdriveCa.txt
C:mytempFolderdriveDNew FolderNew Folder
C:mytempFolderdriveDNew Foldera.txt
有没有什么捷径可以在c#中实现这一点?
使用目录。创建以创建目录:
Directory.Create("c:mytempFolderdriveCNew Folder");
要创建文件,您必须在该位置写入一个文本文件,如下所示:
File.Create("D:New Foldera.txt").Close;
(它返回一个FileSream,所以记住之后关闭它,否则你会锁定文件)
编辑:
好吧,我明白你的意思了。在这种情况下,你需要做这样的事情:
循环目录及其子目录中的所有文件
当您遇到一个文件或文件夹时,您需要使用上述命令在目标文件夹(即c:\mytempFolder)中创建它。要获取驱动器,只需获取路径字符串中的第一个字符(假设它总是有一个驱动器号)。
这里有一个简单的方法,但您可能需要对其进行调整,以考虑文件路径的不一致性:
string targetPath = @"C:mytempFolder";
string path = @"D:New Foldera.txt";
char driveLetter = path[0];
string filePath = path.SubString(3);
string newFilePath = Path.Combine(targetPath, Path.Combine(String.Format("drive{0}", driveLetter.ToString()), filePath));
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");
}