如何确定应用程序包中是否存在文件?

对不起,今天哑号问题2。 是否有可能确定文件是否包含在应用程序包内? 我可以访问文件没有问题,即,

NSString *pathAndFileName = [[NSBundle mainBundle] pathForResource:fileName ofType:@"plist"]; 

但不能弄清楚如何检查文件是否存在那里。

问候

戴夫

 [[NSFileManager defaultManager] fileExistsAtPath:pathAndFileName]; 

此代码为我工作…

 NSString *pathAndFileName = [[NSBundle mainBundle] pathForResource:fileName ofType:nil]; if ([[NSFileManager defaultManager] fileExistsAtPath:pathAndFileName]) { NSLog(@"File exists in BUNDLE"); } else { NSLog(@"File not found"); } 

希望它能帮助别人

 NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *path = [documentsDirectory stringByAppendingPathComponent:@"filename"]; if(![fileManager fileExistsAtPath:path]) { // do something } 

如果资源不存在,pathForResource将返回nil。 用NSFileManager再次检查是多余的。

OBJ-C:

  if (![[NSBundle mainBundle] pathForResource:@"FileName" ofType:@"plist"]) { NSLog(@"The path could not be created."); return; } 

Swift 4:

  guard Bundle.main.path(forResource: "FileName", ofType: "plist") != nil else { print("The path could not be created.") return } 

和@Arkady一样,但是使用Swift 2.0:

首先,在mainBundle()上调用一个方法来帮助创build资源的path:

 guard let path = NSBundle.mainBundle().pathForResource("MyFile", ofType: "txt") else { NSLog("The path could not be created.") return } 

然后,调用defaultManager()方法来检查文件是否存在:

 if NSFileManager.defaultManager().fileExistsAtPath(path) { NSLog("The file exists!") } else { NSLog("Better luck next time...") }