我有一个ant build我正在尝试自定义,以便正在构建的文件部署在我的项目文件夹之外。
Java System属性让我可以访问$ {user.home},但我需要更高一些“Machintosh HD / Applications”。
如何将ant指向高于user.home的目录?
答案 0 :(得分:6)
你可以使用正斜杠(Unix风格),然后用/
开始你的路径:
<property name="root.dir" location="/"/>
它将解析适用于您的操作系统平台的默认驱动器的根目录(例如Windows上的C:\
和Unix上的/
。
<property name="tmp.dir" location="/tmp"/>
将解析为C:\tmp
或/tmp
,具体取决于您的平台。
答案 1 :(得分: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]
答案 2 :(得分:2)
试试看File.listRoots()
。与ANT java task结合可能会得到理想的结果。
答案 3 :(得分:1)
你能不能只使用${user.home}/../
?
答案 4 :(得分:1)
另一个有趣的类是FileSystemView。它包含有关特殊文件的特定于操作系统的信息,例如桌面项或“我的计算机”节点:
final javax.swing.filechooser.FileSystemView fileSystemView = javax.swing.filechooser.FileSystemView.getFileSystemView();
File[] roots=fileSystemView.getRoots();
您可以使用此类检查文件是Drive节点还是软盘节点,并且使用isTraversable可以检查例如空的CD-ROM驱动器,即File.listFiles()失败的现有根。
答案 5 :(得分:0)
如何定义自己的变量? 请参阅here。
答案 6 :(得分:0)
列出可用的文件系统根目录。
特定的Java平台可能会支持 零或更多层次组织 文件系统。每个文件系统都有一个 所有其他的根目录 该文件系统中的文件可以是 到达。 Windows平台,用于 例如,有一个根目录 每个活动驱动器; UNIX平台有 单个根目录,即“/".
可用文件系统根目录的集合 受各种系统级别的影响 插入等操作 弹出可移动媒体和 断开或卸载 物理或虚拟磁盘驱动器。
答案 7 :(得分:0)
这是驱动列表代码:
public static void main(String[] args) {
for(File drive:File.listRoots())
System.out.println(drive.getPath());
}