我愿意在用户的"我的文档"文件夹中保存文件.
我试过这样的位置:
System.getenv("USERPROFILE") + "\\My Documents\\"
Run Code Online (Sandbox Code Playgroud)
然后,我意识到这不适用于将语言设置为另一种语言的系统,例如法语.
是否有另一种方法可以有效地获取"我的文档"文件夹?
Sim*_*olt 15
如果你不介意依赖Swing你可以显然使用这个技巧:
import javax.swing.JFileChooser;
javax.swing.filechooser.FileSystemView;
public class GetMyDocuments {
public static void main(String args[]) {
JFileChooser fr = new JFileChooser();
FileSystemView fw = fr.getFileSystemView();
System.out.println(fw.getDefaultDirectory());
}
}
Run Code Online (Sandbox Code Playgroud)
(来源:http://www.rgagnon.com/javadetails/java-0572.html)
Iva*_*nRF 14
关于性能,这比使用更快JFileChooser:
FileSystemView.getFileSystemView().getDefaultDirectory().getPath()
Run Code Online (Sandbox Code Playgroud)
在我的电脑中,JFileChooser方法需要300毫秒,FileSystemView直接呼叫需要不到100毫秒.
有用于访问Java中特殊文件夹名称的winfoldersjava JNI扩展.
winfoldersjava页面还描述了使用Swing的另一种方法:
此外,如果您只需要"我的文档"路径并且不介意触摸Swing,则可能不需要WinFoldersJava.您可以使用javax.swing.filechooser.FileSystemView.getFileSystemView().getDefaultDirectory()代替.