我知道使用C#等.NET语言,可以做类似
的事情Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
找到桌面的重定向位置。但是,在Java下,我想不出一个好方法。在不使用JNI的情况下,从Java查找重定向用户桌面目录的最合适方法是什么?此处的特定用途是为了管理桌面快捷方式(如果用户需要),用于Java Web Start应用程序。
此应用程序需要写入“应用程序数据”树以及可选地写入桌面。我假设%APPDATA%
始终正确填充,即使文件夹被重定向,也可以找到“应用程序数据”树。所以我的问题是如何可靠地找到Desktop文件夹。
注意:我相信Java系统属性${user.home}
实际上(and erroneously)通过注册表项找到用户的桌面目录,然后尝试向上导航到一个目录以找到“home”目录。当没有重定向目录时,这可以正常工作,否则可能会或可能不会返回有用的东西。
答案 0 :(得分:30)
FileSystemView filesys = FileSystemView.getFileSystemView();
File[] roots = filesys.getRoots();
filesys.getHomeDirectory()
答案 1 :(得分:0)
String desktopPath = System.getProperty("user.home") + File.separator + "Desktop";
答案 2 :(得分:-1)
public class Sample {
public static void main(String[] args) {
String desktopPath =System.getProperty("user.home") + "\\"+"Desktop";
String s = "\"" + desktopPath.replace("\\","\\\\") + "\\\\" +"satis" + "\"";
System.out.print(s);
File f = new File(s);
boolean mkdir = f.mkdir();
System.out.println(mkdir);
}
}