如何确定应用程序包中是否存在文件?
对不起,今天哑号问题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...") }