Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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
如何在vb.net中创建路径中的所有文件夹_Vb.net - Fatal编程技术网

如何在vb.net中创建路径中的所有文件夹

如何在vb.net中创建路径中的所有文件夹,vb.net,Vb.net,基本上,我需要在路径“C:\Users\Desktop\Info\Clients\Data”中创建所有文件夹 但是,即使基本的“Info”目录也不存在,而且我还需要创建许多其他路径,我能做的最好的方法是什么?namespace System.IO中的类目录有一个方法,根据MSDN备注,该方法创建传递的路径中提到的每个目录 将创建路径中指定的任何和所有目录,除非 已存在或除非路径的某些部分无效。如果目录 已存在,此方法不会创建新目录,但 返回现有目录的DirectoryInfo对象 所以你只需要

基本上,我需要在路径“C:\Users\Desktop\Info\Clients\Data”中创建所有文件夹
但是,即使基本的“Info”目录也不存在,而且我还需要创建许多其他路径,我能做的最好的方法是什么?

namespace System.IO中的类目录有一个方法,根据MSDN备注,该方法创建传递的路径中提到的每个目录

将创建路径中指定的任何和所有目录,除非 已存在或除非路径的某些部分无效。如果目录 已存在,此方法不会创建新目录,但 返回现有目录的DirectoryInfo对象

所以你只需要

Directory.CreateDirectory("C:\Users\Desktop\Info\Clients\Data")
如果它们不存在,所有的目录都将被创建

在这个具体的例子中,正如上面Hans Passant的评论所解释的,您应该尽量避免使用硬编码的路径。枚举是对硬盘上许多已知位置的符号引用。您可以将此枚举的元素传递给,以获取硬盘上的物理路径

Dim userDesktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
Dim fullPath = Path.Combine(userDesktop, "INFO\Clients\Data")
Directory.CreateDirectory(fullPath)

namespace System.IO中的类目录有一个名为的方法,根据MSDN备注,该方法创建所传递路径中提到的每个目录

将创建路径中指定的任何和所有目录,除非 已存在或除非路径的某些部分无效。如果目录 已存在,此方法不会创建新目录,但 返回现有目录的DirectoryInfo对象

所以你只需要

Directory.CreateDirectory("C:\Users\Desktop\Info\Clients\Data")
如果它们不存在,所有的目录都将被创建

在这个具体的例子中,正如上面Hans Passant的评论所解释的,您应该尽量避免使用硬编码的路径。枚举是对硬盘上许多已知位置的符号引用。您可以将此枚举的元素传递给,以获取硬盘上的物理路径

Dim userDesktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
Dim fullPath = Path.Combine(userDesktop, "INFO\Clients\Data")
Directory.CreateDirectory(fullPath)

创建一个“现有”文件夹很便宜-它会失败,但您可以忽略失败。只要总是创建所有这些内容。@Jongware我不确定我是否理解,你至少试过这个吗。NET足够聪明,可以创建任何缺少的中间文件夹。使用My.Computer.FileSystem.CreateDirectory()。不要硬编码c:\users,使用Environment.GetFolderPath(),这样你就不会忘记用户名。创建一个“现有”文件夹很便宜,它会失败,但你可以忽略失败。只要总是创建所有这些内容。@Jongware我不确定我是否理解,你至少试过这个吗。NET足够聪明,可以创建任何缺少的中间文件夹。使用My.Computer.FileSystem.CreateDirectory()。不要硬编码c:\users,使用Environment.GetFolderPath()这样你就不会忘记用户名了。很好的答案;)回答得很好;)