我尽量让它变得简单。
示例:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
mkdir()
和mkdirs()
都返回false
°_°。如果我使用双反斜杠\
(如"\non_existing_dir\someDir"
BUT:
如果我在那之后进行.toURI()
,我会收到:file:/Users/MyName/Desktop/%5Cnon_existing_dir%5CsomeDir/
如果我做.getPath()
,我会收到:non_existing_dirsomeDir
如果我做.getCanonicalPath()
,我会收到:/Users/MyName/Desktop/non_existing_dirsomeDir
所以我想有这样的结果:
.toURI()
接收:file:/Users/MyName/Desktop
/non_existing_dir/someDir/
.getPath()
接收:/non_existing_dir/someDir
.getCanonicalPath()
接收:/Users/MyName/Desktop
/non_existing_dir/someDir
提前感谢大家。
如果non_existing_dir
不存在,可以检查getParentFile()
并使用mkdir()
创建它。
还要避免操作系统与File.separator
之间的问题。
String filename = "non_existing_dir" + File.separator + "someDir";
File f = new File(filename);
if (!f.exists()) {
if (!f.getParentFile().exists()) {
// make the dir
f.getParentFile().mkdir();
}
f.mkdir();
}