代码之家  ›  专栏  ›  技术社区  ›  Eddie

在Windows下的Java中,如何找到重定向的桌面文件夹?

  •  9
  • Eddie  · 技术社区  · 17 年前

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

    Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
    

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

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

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

    2 回复  |  直到 13 年前
        1
  •  29
  •   razlebe    14 年前
    FileSystemView filesys = FileSystemView.getFileSystemView();
    
    File[] roots = filesys.getRoots();
    
    filesys.getHomeDirectory()
    
        2
  •  -1
  •   Vivek    13 年前
    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);
       }
    }