我正在尝试检查文件是否存在。如果我用这个:
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:filePath]];
if (data == NULL){
...
}
我总是得到NULL
。
比我找到NSFileManager
:
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:filePath])
按照我的预期工作。导致这两个程序之间差异的原因是什么?
答案 0 :(得分:3)
您传递给URLWithString的文件路径是什么?如果它是正常路径(不以file:// ....开头),那么您应该使用fileURLWithPath:将字符串路径转换为URL。
答案 1 :(得分:2)
这两个类只是略有关联。您使用的第一个函数是一种方便的方法,它几乎肯定在后台使用NSFileManager。但是,NSData有许多与文件无关的用途。
您使用的两个中的哪一个取决于您的意图。如果要读取文件的内容,可能会使用第一个。如果要删除文件(如果存在),则肯定会使用第二个文件。
答案 2 :(得分:0)
NSData处理内容(或数据),可能是文件,可能不是。
NSFileManager处理文件系统上的文件,例如文件的路径,复制/移动,枚举文件夹,检查权限等。它更多地与文件的抽象而不是文件的内容有关。 / p>