Java FileNotFoundException:打开失败:当将目标从21更改为26时,ENOENT(没有这样的文件或目录)
我开发了一个Android应用程序,API 21作为目标SDK版本。 我将下载的文件保存在内存中。然后在新版本中,我用TargetSDK版本26更新了我的应用程序,并将下载的文件保存在Android/data/com.xxx/file/folder上。在新版本上。 当用户拒绝旧版本(目标21)的存储权限并下载文件时,一切正常。但当更新到新版本(目标26)并尝试下载时,会出现以下问题: java.io.FileNotFoundException:/storage/emulated/0/Android/data/com.xxx/file/aghati.tmp:open failed:enoint(没有这样的文件或目录)Java FileNotFoundException:打开失败:当将目标从21更改为26时,ENOENT(没有这样的文件或目录),java,android,Java,Android,我开发了一个Android应用程序,API 21作为目标SDK版本。 我将下载的文件保存在内存中。然后在新版本中,我用TargetSDK版本26更新了我的应用程序,并将下载的文件保存在Android/data/com.xxx/file/folder上。在新版本上。 当用户拒绝旧版本(目标21)的存储权限并下载文件时,一切正常。但当更新到新版本(目标26)并尝试下载时,会出现以下问题: java.io.FileNotFoundException:/storage/emulated/0/Androi
你说你下载到了..../Android/data/com.xxx/file/folder。那么在这个故事中/mnt/sdcard来自哪里?只要下载到…/Android/data/com.xxx/file/folder,你就会没事了。@blackapps我编辑了这个问题。请再次检查。@blackapps他说,一些用户在使用SDK版本26更新到新版本后,无法在/Android/data/com.xxx/file/folder上下载并获取java.io.FileNotFoundException异常。
/storage/emulated/0/Android/data/com.xxx/file/aghati.tmp
不清楚此路径是什么。它是指向aghati.tmp文件夹的路径吗?或者aghati.tmp应该是文件夹“/storage/emulated/0/Android/data/com.xxx/file”中的文件吗?如果是后者:文件夹“/storage/emulated/0/Android/data/com.xxx/file”是否存在?您在尝试下载之前检查了吗?您有一个/文件夹。通常你会有一个/files文件夹。为什么s失败?@blackapps aghati.tmp“文件”文件夹中有一个文件。但当我打开和关闭存储权限时,问题解决了。你说你下载到了..../Android/data/com.xxx/file/folder。那么在这个故事中/mnt/sdcard来自哪里?只要下载到…/Android/data/com.xxx/file/folder,你就会没事了。@blackapps我编辑了这个问题。请再次检查。@blackapps他说,一些用户在使用SDK版本26更新到新版本后,无法在/Android/data/com.xxx/file/folder上下载并获取java.io.FileNotFoundException异常。/storage/emulated/0/Android/data/com.xxx/file/aghati.tmp
不清楚此路径是什么。它是指向aghati.tmp文件夹的路径吗?或者aghati.tmp应该是文件夹“/storage/emulated/0/Android/data/com.xxx/file”中的文件吗?如果是后者:文件夹“/storage/emulated/0/Android/data/com.xxx/file”是否存在?您在尝试下载之前检查了吗?您有一个/文件夹。通常你会有一个/files文件夹。为什么s失败?@blackapps aghati.tmp“文件”文件夹中有一个文件。但当我打开和关闭存储权限时,问题就解决了。
public DownloadFileFromURL(Context _mContext) {
super(_mContext, R.layout.dialog_download_page);
isCompleted = false;
_PatchSave=getPathOfSaveFile();
setMatchFile(_PatchSave, _NameFile, _passOFFile);
saveFile(patchSaveTMP);
}
public File getPathOfSaveFile(Context mContext) {
file = mContext.getExternalFilesDir(null);
if (!file.exists())
file.mkdirs();
return file;
}
private void setMatchFile(String _PatchSave, String _NameFile, String _passOFFile) {
patchSaveTMP = _PatchSave;
File file = new File(patchSaveTMP);
file.mkdirs();
String nameFile = "/" + _NameFile;
patchSave = patchSaveTMP + nameFile + "." + _passOFFile;
patchSaveTMP = patchSaveTMP + nameFile + ".tmp";
}