使用Expo文件系统React Native IOS下载图像时出错



我想从web下载图像文件。这是我的代码:

import React from 'react'
import * as Sharing from "expo-sharing";
import * as FileSystem from 'expo-file-system';
import * as MediaLibrary from 'expo-media-library';
import { getCurrentDateTime } from './UtilityHelper';
import { messageBoxOK } from './AlertHelper';
export const downloadFileIOS = async (url, ticker) => {        
let filename = ticker + "_" + getCurrentDateTime() + ".png";     
MediaLibrary.requestPermissionsAsync();       
if (filename !== null) {
FileSystem.downloadAsync(
url,
FileSystem.documentDirectory + filename
).then(async ({uri}) => {
console.log('Finished downloading to ', uri);            
MediaLibrary.createAssetAsync(uri).then(asset => {
console.log('asset', asset);                
MediaLibrary.createAlbumAsync('My Gallery', asset, false)
.then(() => {                        
messageBoxOK("Download", "Success");
})
.catch(error => {
messageBoxOK("Download", "Failed");
});
});                
}).catch(error => {
console.error(error);
});    
}
};

在Android上运行良好,但不适用于IOS

对于IOS,我得到了这个错误:

[错误:的目录'file:///Users/dennisliu/Library/Developer/CoreSimulator/Devices/632FD441-0040-4E1A-AA4E-52A5C015C304/data/Containers/Data/Application/EBFB20FF-EAD8-40FE-BE4D-1D1719A633D2/Documents/ASII_2022-09-0707:37:36.png'不存在。请确保目录"(null("在调用downloadAsync之前已存在。]

我允许在IOS中使用该权限。

可能是什么问题?

我发现了问题。

问题是文件名:ASII_2022-09-07 07:37:36.png无效,导致错误。

当我将文件名更改为:AAA.png时,它就工作了。

最新更新