2009-02-20 19 views
9

我知道使用.NET语言如C#,一个可以这样做在Windows下的java中,如何找到重定向的Desktop文件夹?

Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) 

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

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

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

回答

29
FileSystemView filesys = FileSystemView.getFileSystemView(); 

File[] roots = filesys.getRoots(); 

filesys.getHomeDirectory() 
+1

如何可靠这是什么?即使在Java 1.6中,这种方法也完全没有记录。看起来这是100%的Windows特有的行为,没关系,这段代码只能在Windows上调用,但这并不令人放心。 – Eddie 2009-02-20 19:41:52

-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); 
    } 
} 
相关问题