Java 无法创建目录,但无法创建文件

Java 无法创建目录,但无法创建文件,java,android,file-io,Java,Android,File Io,以下是我所做的事情: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 我测试了3台设备,其中一台引发了异常: java.io.IOException: Cannot create dir /mnt/sdcard/myfolder t1.dat已在/mnt/sdcard/中成功创建,但myfolder未成功创建 该设备是安卓版本4.0.4的Xperia Ion。它出了什么问题?

以下是我所做的事情:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我测试了3台设备,其中一台引发了异常:

java.io.IOException: Cannot create dir /mnt/sdcard/myfolder
t1.dat已在/mnt/sdcard/中成功创建,但myfolder未成功创建

该设备是安卓版本4.0.4的Xperia Ion。它出了什么问题?我该如何修复它


编辑:我曾尝试通过一些应用程序创建文件夹,如文件管理器。 尽管SD卡是可写和可读的,但他们也无法创建。 我认为我的手机有一些“保护”,不允许我在sd卡上创建文件夹。 但有趣的是,我的手机允许我创建文件

public boolean isExternalStorageWritable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        return true;
    }
    return false;
}

/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state) ||
            Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
        return true;
    }
    return false;
}

将Environment.getExternalStorageDirectory()替换为directory,并且“/myfolder”将是“/myfolder”

尝试使用“myfolder/”而不是“/myfolder/”,这可能会有帮助,也可能没有帮助,但值得检查
public boolean isExternalStorageWritable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        return true;
    }
    return false;
}

/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state) ||
            Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
        return true;
    }
    return false;
}
  public void createMyFolder(){
        File directory = new File(Environment.getExternalStorageDirectory().getPath() + "/myfolder");
        directory.mkdir(); //I had also tried mkdirs()

        File file= new File(directory.getPath() + "/t1.dat");
        try {
            file.createNewFile();
        } catch (IOException e) {}
    }