在Windows下的java中,如何找到重定向的Desktop文件夹?

时间:2009-02-20 17:04:21

标签: java windows redirect find desktop

我知道使用C#等.NET语言,可以做类似

的事情
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)

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

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

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

3 个答案:

答案 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);
   }
}