我需要使用Java查找我的文档路径。以下代码没有给我“准确”的定位
System.getProperty("user.home");
反过来应该怎么办?

附言:
我不想使用JFileChooser Dirty技巧。

最佳答案

您可以使用注册表查询来获取它,而无需JNA或管理员权限。

Runtime.getRuntime().exec("reg query \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell
Folders\" /v personal");

显然,这将在Windows以外的任何其他操作系统上失败,并且我不确定这是否适用于Windows XP。

编辑:
将其放入工作的代码序列中:
String myDocuments = null;

try {
    Process p =  Runtime.getRuntime().exec("reg query \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\" /v personal");
    p.waitFor();

    InputStream in = p.getInputStream();
    byte[] b = new byte[in.available()];
    in.read(b);
    in.close();

    myDocuments = new String(b);
    myDocuments = myDocuments.split("\\s\\s+")[4];

} catch(Throwable t) {
    t.printStackTrace();
}

System.out.println(myDocuments);

请注意,这将锁定该过程,直到完成“reg查询”为止,这可能会导致麻烦,具体取决于您在做什么。

关于java - 在Java中获取我的文档路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9677692/

10-11 21:53