11

我知道使用 .NET 语言,例如 C#,可以做类似的事情

Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)

找到桌面的重定向位置。但是,在 Java 下,我想不出一个好的方法来做到这一点。在不使用 JNI 的情况下,从 Java 中查找重定向的用户桌面目录的最合适方法是什么?此处的特定目的是为了管理 Java Web Start 应用程序的桌面快捷方式(如果用户需要)。

此应用程序需要写入“应用程序数据”树以及可选地写入桌面。我假设%APPDATA%始终正确填充,即使文件夹被重定向,以查找“应用程序数据”树。所以我的悬而未决的问题是如何可靠地找到桌面文件夹。

注意:我相信 Java 系统属性${user.home}实际上(并且错误地)通过注册表项定位用户的桌面目录,然后尝试向上导航一个目录以找到“主”目录。当没有目录被重定向时,这可以正常工作,否则可能会或可能不会返回有用的东西。

4

3 回答 3

31
FileSystemView filesys = FileSystemView.getFileSystemView();

filesys.getHomeDirectory()
于 2009-02-20T17:32:56.687 回答
0
String desktopPath = System.getProperty("user.home") + File.separator + "Desktop";
于 2020-12-19T15:51:09.587 回答
-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);
   }
}
于 2012-04-18T02:02:05.140 回答