2014-10-31 90 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)