我需要使用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/