Android: mkdir() 失败:ENOENT(没有那个文件或目录)

Android: mkdir() failed: ENOENT (No such file or directory)

我一直在尝试启用文件存储系统,并且 android phone 到 运行。但是,我遇到了以下问题:

static File dataFolder = Environment.getExternalStorageDirectory();

...

static File userDataFolder = new File(dataFolder, "triathlon");

...

File dayFolder = new File(userDataFolder, folderName);
if(!dayFolder.exists()){
    boolean result = dayFolder.mkdir();
    if (!result){
        Log.d("dayFolder creation", "failed");
    }
}

其中 folderName 是表示当前日期的字符串。

这是错误信息:

W/System.err: mkdir failed: ENOENT (No such file or directory) : /storage/emulated/0/triathlon/2016-05-23

我已经添加了读写外部存储的权限。 怎么了,我该如何解决?

而不是

boolean result = dayFolder.mkdir();

使用

boolean result = dayFolder.mkdirs();

.mkdirs() 将创建所有必要的父目录。

一个或多个父目录可能不存在,因此您无法使用 mkdir() 创建目录,因此您需要 mkdirs().