无法保存文件EACCES或ENOENT错误

时间:2017-05-24 10:29:27

标签: java android csv

我正在尝试保存文件很长一段时间,但我要么收到错误ENOENT(没有这样的文件或目录)或EACCES(没有权限)。
这段代码给了我ENOENT:

String fileName = "/testCSV1.csv";
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);

File f = new File(path, fileName);
CSVWriter writer;  

当我通过这个尝试时,我得到了EACCES:

String fileName = "/testCSV1.csv";
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String filePath = baseDir + File.separator + fileName;
File f = new File(filePath);
CSVWriter writer;  

即使我认为我同时拥有这两种权限:

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

那么我需要做些什么来使这个工作并保存这个文件?

1 个答案:

答案 0 :(得分:2)

我确定你在运行时没有问过这个许可。因此,请从设置中明确启用这些权限,然后重试。从Marsh醇厚,您必须在运行时授予权限,即使在清单中声明它们之后也是如此。希望这可以帮助。