我需要在〜/ .config/myapp.cfg中创建一个配置文件所以我这样做File
:
File f;
f = new File("~/.config/gfgd.gfgdf");
if(!f.exists()){
f.createNewFile();
}
Run Code Online (Sandbox Code Playgroud)
问题是,它告诉我,该目录不存在,就像这样.
java.io.IOException: Not such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
Run Code Online (Sandbox Code Playgroud)
我尝试将路径更改为/ home/user之类的东西,并且它有效.所以我设法得出一个结论,java在foldername之前不知道什么是〜/ means和什么是punct(.),因为/home/user/.config也不起作用.
我该怎么办?
aio*_*obe 60
该~
符号是一个shell的事情.阅读shell扩展.
Java不理解这种表示法.要获取主目录,请使用key 获取系统属性user.home
:
String home = System.getProperty("user.home");
File f = new File(home + "/.config/gfgd.gfgdf");
Run Code Online (Sandbox Code Playgroud)
(作为奖励,它也适用于Windows机器;-)
用户user.home
系统属性.要完全避免操作系统依赖性,您应该让File执行路径解析,如下所示:
f = new File(new File (System.getProperty("user.home"),".config"),"gfgd.gfgdf");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14983 次 |
最近记录: |