Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c中的creting文件/目录#_C#_File_Directory - Fatal编程技术网

C# c中的creting文件/目录#

C# c中的creting文件/目录#,c#,file,directory,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.t

我在几个驱动器中有一些文件夹/文件

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#中是否有实现此功能的快捷方式?

用于创建目录:

Directory.Create("c:\mytempFolder\driveC\New Folder");
要创建文件,您必须将文本文件写入该位置,如下所示:

File.Create("D:\New Folder\a.txt").Close;
(它返回一个文件流,因此请记住在以后关闭此文件,否则将锁定该文件)

编辑:

好吧,我明白你的意思了。在这种情况下,您需要执行以下操作:

当您遇到一个文件或文件夹时,您需要使用上述命令在目标文件夹(即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));

但是,如果textbox1包含完整的文件名,比如c:\newfolder\a.txtthen--System.IO.file.Create(“textbox1.text”);删除“C:\\gg/”;我不知道我是否让你理解了这个问题。如果你在程序中得到了列表,那么你必须从程序中创建树结构。我不直接知道新文件夹的名称。这是目录的完整路径。我必须在不带驱动器号的情况下提取它:\。我是通过字符串操作编程完成的。所以我问到一种不带驱动器获取路径的方法,这样我就可以直接使用“c:\mytempfolder\driveC\”+FullPath而不带驱动器。您说的我已经做了。使用路径的第一个字符(c/d),然后在mytempfolder下创建类似驱动器(c\d)的目录等等。我只是想知道有没有什么操作可以让我得到没有驱动器的相对路径,然后直接创建所需的文件/文件夹,附加mytempfodler/drive(c/d)好吧,你没有提到,但长话短说没有。你得写点什么来帮你。不过应该是直截了当的
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));