2014-10-31 43 views
0

我想要获取C:\ Program Files(x86)\ Java \ 下的所有子目录对于我的电脑应该是jre1.8.0_25,如果不同的版本可能会更多安装这很好,我想要的。 但所有我曾经得到的是java的这段代码Directory.GetDirectories不返回子目录

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

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

我在哪里去了?

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

+0

没有,即使编译? GetDirectories的使用没有超载 – Plutonix 2014-10-31 17:07:28

+0

目标是什么?无论您使用的是哪种数据库,都无法将FileInfo的集合作为数据库参数传递! – Steve 2014-10-31 17:12:46

回答

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) 
+0

这是我在空闲时间为了娱乐而工作的程序。这是一个正在测试的代码,但它看起来并不好。 – Itomship 2014-10-31 17:27:21

+0

该程序不向公众发布(这不是出售的东西)因此,它将永远是一台英文电脑。很好的建议,但 – Itomship 2014-10-31 17:28:32

+0

下一个读者可能需要知道的细节;它和你一样值得注意。我可能会给DV一个至少没有提到的答案。 – Plutonix 2014-10-31 17:34:02

0

试试这个:

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