我有以下代码来从下载文件夹中取消链接/删除文件,该文件夹也是通过使用相同路径的应用程序创建的。
注意,我使用的是RNFetchBlob包
---
const fs = RNFetchBlob.fs
const base64 = RNFetchBlob.base64
const dirs = RNFetchBlob.fs.dirs
RNFetchBlob.fs
.unlink(dirs.DownloadDir + '/passpoint.config.xml')
.then(() => {
alert("File deleted");
})
.catch(err => {
alert(err);
});
---
我不断地得到以下错误;
[Error: Failed to delete '/storage/emulated/0/Download/passpoint.config.xml']
我以为它可能是路径,但这与我创建文件时使用的路径相同,我可以通过Android上的文件资源管理器查看文件。
解决方案
fs.unlink(dirs.DownloadDir + '/passpoint.config.xml');
使用MANAGE_EXTERNAL_STORAGE
权限作为快速解决方案(编辑AndroidManifiest.xml
(
https://developer.android.com/training/data-storage/manage-all-files
或者使用更先进的技术:
https://developer.android.com/training/data-storage/shared/media
https://developer.android.com/training/data-storage/shared/documents-files
只需在AndroidManifiest.xml文件中添加android:requestLegacyExternalStorage="true"
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme"
android:requestLegacyExternalStorage="true">