使用File创建包含句点的目录

0 java file-io

File testDir = new File("C:\temp\test");
testDir.createNewFile();
Run Code Online (Sandbox Code Playgroud)

据我了解,上述将创建一个目录的目录c名为test:\ TEMP

File testDir = new File("C:\temp\test.dir");
testDir.createNewFile();
Run Code Online (Sandbox Code Playgroud)

据我了解,上面将在目录c:\ temp中创建一个名为test.dir 的文件

如果我希望test.dir实际上是一个目录,我应该对上面的代码做什么?

Jon*_*eet 8

不,第一个会创建一个常规文件 - 毕竟,这就是你要求它做的:

当且仅当具有此名称的文件尚不存在时,以原子方式创建由此抽象路径名命名的新空文件.检查文件是否存在以及文件的创建(如果不存在)是针对可能影响文件的所有其他文件系统活动的原子操作.

没有什么说它会创建一个目录.你想要逃避反斜杠,或者它试图找到C:<tab>emp<tab>est

如果要创建目录,请使用File.mkdirFile.mkdirs().你仍然需要逃避反斜杠:

File testDir = new File("C:\\temp\\test.dir");
bool created = testDir.mkdir();
Run Code Online (Sandbox Code Playgroud)

(也mkdirs用于创建父目录.)返回值告诉您它是否实际创建了目录.