React native exists()始终返回TRUE
我使用的是react native fs,出于某种原因,每当我使用exists()方法时,它总是返回TRUE。我的代码示例如下所示:React native exists()始终返回TRUE,react-native,react-native-fs,React Native,React Native Fs,我使用的是react native fs,出于某种原因,每当我使用exists()方法时,它总是返回TRUE。我的代码示例如下所示: 让path\u name=RNFS.DocumentDirectoryPath+“/userdata/settings.json”; if(RNFS.exists(路径名称)){ log(“文件存在”) file=await RNFS.readFile(路径名) console.log(文件) 控制台日志(“完成”) } 否则{ console.log(“文件不存
让path\u name=RNFS.DocumentDirectoryPath+“/userdata/settings.json”;
if(RNFS.exists(路径名称)){
log(“文件存在”)
file=await RNFS.readFile(路径名)
console.log(文件)
控制台日志(“完成”)
}
否则{
console.log(“文件不存在”)
}
控制台的输出为“文件存在”,然后抛出一个错误,说明:
错误:enoint:没有这样的文件或目录,请打开
/data/data/com.test7/files/userdata/settings.json'
它如何使用exists
方法而不是readFile
方法存在
进一步检查后,无论文件名是什么,RNFS.exists()似乎总是返回true。为什么它总是回归真实
路径名显示为/data/data/com.test7/files/userdata/settings.json
即使我将代码更改为一些荒谬的代码,如以下代码:
if(RNFS.exists(“blah”)){
日志(“存在废话”);
}否则{
console.log(“BLAH不存在”);
}
它的计算结果仍然为true,并显示以下消息:
BLAH存在
我已经显示了目录的内容,并验证了这些文件不存在。这是因为返回了一个Promise
。将一个Promise
对象放入测试if语句中
将始终为真
改为这样做:
if(等待RNFS.exists(“blah”)){
日志(“存在废话”);
}否则{
console.log(“BLAH不存在”);
}
或:
RNFS.exists(“废话”)
。然后((存在)=>{
如果(存在){
日志(“存在废话”);
}否则{
console.log(“BLAH不存在”);
}
});
尝试console.log
在path\u name
上,从错误日志中看似乎不是correct@Val有趣的是,它说/data/data/com.test7/files/userdata/settings.json
。不确定为什么它有/data两次,或者它是否应该是这样。@Val另外,我最初在错误消息中有未定义的,尽管我认为这是因为测试用例中的DocumentDirectoryPath拼写错误。这个问题现在已经解决了,我也相应地调整了我的问题。