【问题标题】:Check if plist file does not exist检查plist文件是否不存在
【发布时间】:2012-05-11 12:55:39
【问题描述】:

我知道如何检查 plist 文件是否存在...

if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {
 //..etc
}

我想知道有没有办法检查plist文件是否不存在?

我在尝试使用我的 plist 中不存在的东西时遇到了一些问题,因为我稍后会创建 plist。所以我想检查目录中是否不存在 plist。我会将一些默认值传递给我要使用的对象。这样我就不会出错;我比较这些值的 if 语句将不适合,稍后将填充正确的数据。

【问题讨论】:

  • AFAIK, if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {} 检查它是否不存在。 if ([[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {}检查它是否存在。
  • 无意冒犯,但如果你不能自己解决这个问题,也许你应该做更多基本的事情,直到你了解更多。
  • @EmilioPelaez 我正在学习,这是一个令人困惑的问题,因为我的广泛测试(![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {} 正在检查文件剂量是否存在,([[NSFileManager defaultManager] fileExistsAtPath:plistPath]) 检查文件是否不存在。我知道这一点,因为我已经从我的包中删除了我的 plist 文件,然后在两个 if 语句中添加了断点。当文件不存在时,它进入 ([[NSFileManager defaultManager] fileExistsAtPath:plistPath]),当它存在时,它进入 (![[NSFileManager defaultManager] fileExistsAtPath:plistPath])
  • 我觉得有必要提出这个问题,因为有时有几种不同的方法可以解决问题,其中有些方法比其他方法更好。我想这可能是发生不同方法调用的情况之一,即“fileDoseNotExists”。我搜索了这个,但找不到它,所以双重确保我决定问。不要误会我的意思,我对你说的话并不生气,这让我有点不安,因为我正在尽力而为,我问问题的原因是因为我想学习..我相信我可以破解我的方式虽然 60% 的代码,但我不会学到任何东西。
  • @AliHamze 我刚刚读到这个 ​​!此处的符号(以及在任何类型为指针的表达式前面)返回 true (1) 我想这就是这里发生的事情,因为它支持了我所做的测试。

标签: iphone ios plist nsfilemanager


【解决方案1】:

如果显示的代码检查文件确实存在,则删除 ! 以检查它是否存在:

if ([[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {

或者,您可以使用:

if ([[NSFileManager defaultManager] fileExistsAtPath:plistPath] != 0) {

因为当文件确实存在时代码返回 0。您可能需要检查 errno 或等效项,以查看是否是权限问题与不存在的文件或目录。

【讨论】:

  • 哦,伙计.. !我把它读成不相等或不相等..它让我感到困惑..这很有效,谢谢,我会尽快将您的答案标记为正确
  • 如果文件确实存在,[[NSFileManager defaultManager] fileExistsAtPath:plistPath] 不返回 true 吗?所以![[NSFileManager defaultManager] fileExistsAtPath:plistPath] 应该检查它是否不存在。要么就是这样,要么我需要睡觉......
  • 老实说我已经不知道了..我所知道的是[[NSFileManager defaultManager] fileExistsAtPath:plistPath]在没有dile时成功,![[NSFileManager defaultManager] fileExistsAtPath:plistPath]在有文件时成功...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 2021-07-22
相关资源
最近更新 更多