Android 无法创建文件夹并将文件放入此文件夹中

Android 无法创建文件夹并将文件放入此文件夹中,android,android-file,Android,Android File,我想创建一个文件夹并将所有生成的文件放在此文件夹中,因此我创建了此方法以在外部存储器中创建名为MyAppFolder的目录,并将.nomedia文件放在此文件夹中,以避免媒体索引 static String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); static String baseAppDir = "MyAppFolder"; static String fileHider = ".nomed

我想创建一个文件夹并将所有生成的文件放在此文件夹中,因此我创建了此方法以在外部存储器中创建名为
MyAppFolder
的目录,并将
.nomedia
文件放在此文件夹中,以避免媒体索引

static String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
static String baseAppDir = "MyAppFolder";
static String fileHider = ".nomedia";

 public static void createFolder() {
        try {

            File mainDirectory = new File(baseDir + File.separator + baseAppDir);
            if (!(mainDirectory.exists())) {
                mainDirectory.mkdirs();
                File outputFile = new File(mainDirectory, fileHider);
                try {
                    FileOutputStream fos = new FileOutputStream(outputFile);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
            }
        } catch (Exception exc) {
            System.out.println("ERROR: " + exc.toString());
            exc.printStackTrace();
        }
    }
我正在emulator上测试它,但不起作用,我不知道该如何修复它

错误日志为:

java.io.FileNotFoundException: /storage/sdcard/MyAppFolder/.nomedia: open failed: ENOENT (No such file or directory)
    02-12 20:11:51.758    4899-4899/com.myapp.testapp W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:409)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
    02-12 20:11:51.758    4899-4899/com.myapp.testapp W/System.err﹕ at java.io.FileOutputStream.<init>(FileOutputStream.java:73)
    02-12 20:11:51.758    4899-4899/com.myapp.testapp W/System.err﹕ at com.myapp.testapp.MyFileManager.createFolder(MyFileManager.java:272)
来自的相同结果告诉您应该执行以下操作。它确实声明,如果FileOutputStream不存在,它应该能够创建,但如果失败,它将抛出异常,因此最好执行以下操作。我想这是一个更可靠的消防方式,它会工作吗?我不知道。试试看!:-)


确保你得到许可

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

键入“ls-a”以检查是否确实创建了隐藏文件。有时不要100%信任异常日志。

谢谢您的回答,请参阅编辑中的“我的尝试”。。还是一样的结果啊。应该有一个新的答案-P
File yourFile = new File("score.txt");
if(!yourFile.exists()) {
    yourFile.createNewFile();
} 
FileOutputStream oFile = new FileOutputStream(yourFile, false); 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
static String baseAppDir = ".MyAppFolder";
static String fileHider = "nomedia";