我知道使用像C#这样的.NET语言,可以做类似的事情
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
找到桌面的重定向位置.但是,在Java下,我想不出一个好方法.在不使用JNI的情况下,从Java查找重定向用户桌面目录的最合适方法是什么?此处的特定目的是为了管理桌面快捷方式(如果用户需要),用于Java Web Start应用程序.
此应用程序需要写入"应用程序数据"树以及可选地写入桌面.%APPDATA%
即使在重定向文件夹时,我也会假设始终正确填充,以查找"应用程序数据"树.所以我的开放性问题是如何可靠地找到Desktop文件夹.
注意:我认为Java系统属性${user.home}
实际上(并且错误地)通过注册表项找到用户的Desktop目录,然后尝试向上导航一个目录以找到"home"目录.当没有重定向目录时,这可以正常工作,否则可能会或可能不会返回有用的内容.
FileSystemView filesys = FileSystemView.getFileSystemView(); File[] roots = filesys.getRoots(); filesys.getHomeDirectory()