为什么 React Native RNFS 的 copyFile() 无法访问 iOS 上的现有文件?

Why React Native RNFS's copyFile() cannot access to existing file on iOS?

我正在尝试使用 RNFS 从“/Documents”文件夹(在 ios 模拟器上)访问和复制文件,但是 .exists() 可以找到该文件,.copyFile() returns 错误为 "The file 'temp.jpg' doesn't exists"

为什么会发生这种情况?

这是我的源文件路径(我也可以用图像组件访问它):

添加 "file://" 到路径也不起作用。

/Users/myusername/Library/Developer/CoreSimulator/Devices/D305Z9A4-6C67-4DFE-A07D-1EF4D0302B87/data/Containers/Data/Application/B933EF45-391F-4882-986F-92B5430823D0/Documents/temp.jpg

这是我的代码片段,newlyCroppedImagePath是上面的路径。 exists() returns 结果正确但 .copyFile() returns "doesn't exists"

    RNFS.exists(newlyCroppedImagePath)
    .then((success) => {
        console.log('File Exists!'); // <--- here RNFS can read the file and returns this
    })
    .catch((err) => {
      console.log("Exists Error: " + err.message);
    });

    RNFS.copyFile(newlyCroppedImagePath, tmpFilePath)
    .then((success) => {
        console.log('file moved!');

    })
    .catch((err) => {
      console.log("Error: " + err.message); // <--- but copyFile returns "doesn't exists" error for temp.jpg
    });

上实现
RNFS.exists(newlyCroppedImagePath).then((success) => {
    console.log('File Exists!'); // <--- here RNFS can read the file and returns this
})

并不意味着该文件存在。

因为 exists() returns 一个 Promise,if 条件将永远为真。

尝试以下方法

RNFS.exists(filePath).then((status)=>{
if(status){
    console.log('Yay! File exists')
} else {
    console.log('File not exists')
}
})

此外,请使用RNFS.readDir()检查目录中的可用文件,以检查您的文件是否已提交。

参考 https://github.com/itinance/react-native-fs#readdirdirpath-string-promisestring