2011-04-20 22 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()); 
} 
相关问题