Android 打开失败:eOne(没有这样的文件或目录),即使有权限
我知道还有很多关于这个问题的帖子,但似乎没有一个能解决我的问题。我正在尝试在Android 打开失败:eOne(没有这样的文件或目录),即使有权限,android,fileoutputstream,Android,Fileoutputstream,我知道还有很多关于这个问题的帖子,但似乎没有一个能解决我的问题。我正在尝试在环境中创建一个文件。目录\u将下载该文件,通过电子邮件发送该文件,然后将其删除。然而,当我初始化文件输出流fos=newfileoutputstream(文件)时,我得到一个错误 我得到的错误是: java.io.FileNotFoundException:/CheckListReport\u 2015\u 07\u 19.txt:open failed:enoint(没有这样的文件或目录) 在我的清单中,我在appli
环境中创建一个文件。目录\u将下载该文件,通过电子邮件发送该文件,然后将其删除。然而,当我初始化文件输出流fos=newfileoutputstream(文件)时,我得到一个错误代码>
我得到的错误是:
java.io.FileNotFoundException:/CheckListReport\u 2015\u 07\u 19.txt:open failed:enoint(没有这样的文件或目录)
在我的清单中,我在applications标签之外有
代码如下:
String report = new SimpleDateFormat("yyyy_MM_dd").format(Calendar.getInstance().getTime());
File path = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS);
File file = new File(path, "CheckListReport_" + report + ".txt");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
String lineToWrite;
for (Map.Entry entry : CheckboxHandler.data.entrySet()) {
lineToWrite = entry.getKey() + ", " + entry.getValue() + "\n";
fos.write(lineToWrite.getBytes());
}
} catch (IOException e) {
e.printStackTrace();
}
String subject = "CheckListReport_" + report + ".txt";
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"checklistreportdata@gmail.com"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(new File(path, "CheckListReport_" + report + ".txt").toString()));
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
file.delete();
使用此权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
更改此项:
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + Environment.DIRECTORY_DOWNLOADS + "/CheckListReport_" + report + ".txt"));
致:
谢谢回复,我用当前代码编辑了我的帖子。当我点击send时,它会显示不幸的是Gmail已经停止
@Brejuro意味着现在你可以访问该文件了。在电子邮件发送点更正你的路径我想,你知道我做错了什么吗<代码>emailIntent.putExtra(android.content.Intent.EXTRA_流,Uri.parse(path.toString()+“CheckListReport_”+report+”.txt))
和emailIntent.putExtra(Intent.EXTRA_流,Uri.parse(path.toString()+“CheckListReport_”+report+”.txt))代码>谢谢你一直支持我,我做了那个改变,但仍然让Gmail崩溃。我将用代码更新我的帖子
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + Environment.DIRECTORY_DOWNLOADS + "/CheckListReport_" + report + ".txt"));
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(new File(path, "CheckListReport_" + report + ".txt").toString()));