可以更改用户音乐、图片等目录。为此,请转到您的 Windows 资源管理器,右键单击“音乐”并转到路径。
在这里你可以看到,我将我的音乐移动到了另一个硬盘上。
现在的问题是:如何在 Java 中获取此目录?
因为 System.getProperty("user.home").concat("\\Music")
导致“C:\Users\GG\Music”而不是“D:\GG\音乐"。
更新:
由 Anders 回答:
对我有用的方法是以下 3 行代码:
char[] pszPath = new char[WinDef.MAX_PATH];
Shell32.INSTANCE.SHGetFolderPath(null, ShlObj.CSIDL_MYMUSIC, null, ShlObj.SHGFP_TYPE_CURRENT, pszPath);
File f = new File(String.valueOf(pszPath).trim());
最佳答案
在 Windows 上获取特殊文件夹路径的正确方法是调用 shell 函数,如 SHGetFolderPath
使用 CSIDL_*
常量(在您的情况下为 CSIDL_MYMUSIC
)。
您需要使用 Java 中的 JNI 或 JNA 来执行此操作。可以找到示例here和 here .
为了完整起见,从注册表中读取的是 not the correct way做这个...
关于java - 我如何获得用户音乐目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44136342/