Directory.GetDirectories不返回子目录

时间:2014-10-31 17:00:37

标签: vb.net directory

我试图获取C:\ Program Files(x86)\ Java \下的所有子目录 对于我的电脑应该是jre1.8.0_25,如果安装了不同的版本可能会有更多,我想要的。 但我得到的只是 java 来自此代码

Directory.GetDirectories("C:\Program Files (x86)\Java\", SearchOption.AllDirectories))

New System.IO.DirectoryInfo("C:\Program Files (x86)\Java").Name)

我哪里错了?

目标是将上述代码输出到数据库中。我以前从注册表中读取它,但Java8不再适用于我的旧代码。

2 个答案:

答案 0 :(得分:1)

首先,此重载不存在:GetDirectories(string, options)

有:

GetDirectories(path as string)
GetDirectories(path as string, pattern as string)
GetDirectories(path as string, pattern as string, options As SearchOptions)

这些都不符合你使用它的方式。

其次,你不应该假设系统文件夹的名称,例如“C:\ Program Files(x86)” - 德国或法国的计算机不会有这样的文件夹。

这会在我的机器上返回75个文件夹:

' get program files
Dim fpath As String = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)
' append java
fpath = Path.Combine(fpath, "Java")
' fetch
Dim folders = Directory.GetDirectories(fpath, "*", SearchOption.AllDirectories)

答案 1 :(得分:0)

请改为尝试:

? = New System.IO.DirectoryInfo("C:\Program Files (x86)\Java").GetDirectories(SearchOption.AllDirectories)