在AndroidManifest.xml文件中添加以下权限:
同时,在运行时请求权限:
if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, requestCode); }
在创建文件前,先检查目标文件夹是否存在,如果不存在就创建它。例如:
File directory = new File(Environment.getExternalStorageDirectory() + "/myFolder/"); if (!directory.exists()) { directory.mkdirs(); }
如果您尝试在受保护的文件夹中创建文件,可能会导致该问题。您应该使用 /storage/emulated/0/ 目录或外部存储器的应用程序专用目录。例如:
File file = new File(context.getExternalFilesDir(null), "myFile.txt");
现在,您可以使用常规的Java文件写入操作来写入数据到文件中。例如:
File file = new File(directory, "myFile.txt"); try (FileWriter writer = new FileWriter(file)) { writer.write("Hello, World!"); } catch (IOException e) { e.printStackTrace(); }
使用上述解决方案,您应该能够解决Android无法在特定文件夹中创建文件的问题。