2011-04-20 20 views

回答

6

你可以使用正斜槓(Unix的風格),只是用/啓動路徑:

<property name="root.dir" location="/"/> 

,它會解決的默認驅動器的適合你的操作系統平臺(例如C:\在Windows和根Unix上的/)。

<property name="tmp.dir" location="/tmp"/> 

將解析爲C:\tmp/tmp,根據您的平臺。

2

您可以使用getParent()

File f = new File(System.getProperty("user.home")); 
f.getParent();//this would return the parent of user home which you need. 

您的更新:

You can use [File.listRoots()][2] 
1

你就不能使用${user.home}/../

0

如何定義自己的變量? 見here

2

請試試看看File.listRoots()。結合ANT java task可能會得到期望的結果。

+0

'Java系統性能給我訪問$ {}的user.home但我需要更高「Machintosh HD /應用程序」是exact.' @約翰,你需要root或user.home的直接上面的目錄?> – 2011-04-20 12:01:05

+0

根將是最好的 – DrANoel 2011-04-20 12:29:51

0

使用File.listRoots()

列出可用的文件系統根。

一個特定的Java平臺可能支持 零個或多個分級組織的 文件系統。每個文件系統都有一個 根目錄,該文件系統中的所有其他 文件可以從該目錄到達 。對於 示例,Windows平臺具有用於每個活動驅動器的 的根目錄; UNIX平臺有 單個根目錄,即「/」。

該組可用的文件系統根 的是由各種系統級作爲插入或 噴射可移動介質和 斷開或 物理或虛擬磁盤驅動器卸載這樣 操作的影響。

+0

我認爲他正在嘗試從ANT引用它...所以它是值得提及ANT Java任務以及。 – 2011-04-20 11:56:47

+0

你做了什麼,所以給你+1 :-) – 2011-04-20 11:57:35

1

另一個有趣的類是FileSystemView。它包含特殊的文件,如桌面項目或「我的電腦」節點操作系統相關的信息:

final javax.swing.filechooser.FileSystemView fileSystemView = javax.swing.filechooser.FileSystemView.getFileSystemView(); 
    File[] roots=fileSystemView.getRoots(); 

你可以使用這個類來檢查文件是否是一個驅動器節點或軟盤節點,並進一步使用isTraversable你可以檢查例如空的CD-ROM驅動器,即File.listFiles()將失敗的現有根。

0

這裏是驅動上市代碼:

public static void main(String[] args) { 
    for(File drive:File.listRoots()) 
     System.out.println(drive.getPath()); 
} 
相關問題