0

我正在尝试使用 RNFS 从“/Documents”文件夹(在 ios 模拟器上)访问和复制文件,但是虽然 .exists() 可以找到该文件,但 .copyFile() 返回错误,因为“文件 'temp.jpg' 没有不存在”

为什么会发生这种情况?

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

在路径中添加“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() 返回正确的结果,但 .copyFile() 返回“不存在”

    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
    });
4

1 回答 1

0

变得真实

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

并不意味着该文件存在。

由于 exists() 返回一个 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

于 2020-05-12T06:13:51.973 回答