File.mkdir()和mkdirs()正在创建文件而不是目录

int*_*_32 8 android java-io

我使用以下代码:

final File newFile = new File("/mnt/sdcard/test/");
newFile.mkdir(); // if I use mkdirs() result is the same
Run Code Online (Sandbox Code Playgroud)

它会创建一个空文件!为什么?

col*_*ins 19

除非您希望创建结构中的每个文件夹,否则不会使用mkdirs().尽量不要在字符串的末尾添加额外的斜杠,看看是否有效.

例如

final File newFile = new File("/mnt/sdcard/test");
newFile.mkdir();
Run Code Online (Sandbox Code Playgroud)

  • 我最后尝试了2个斜杠,它有效,谢谢! (2认同)

Der*_*ger 7

当我需要确保文件的所有目录都存在时,我只有文件路径 - 我这样做

   new File(FileName.substring(0,FileName.lastIndexOf("/"))).mkdirs();
Run Code Online (Sandbox Code Playgroud)