我正在尝试创建一个具有接收文件路径(NSString)作为参数的方法。
我需要检查给定的文件路径有效,如果有效,我将在磁盘上进行一些写作操作,否则返回错误。
所以找出给定路径有效的最佳方法是什么?
无需先检查路径是否有效。只需继续尝试创建它,然后检查成功即可。
createFileAtpath:costant:ctatributes: > nsfileManager 返回A bool ,如果文件已经存在或成功创建它,则返回。
我建议使用此方法并检查返回的结果。如果返回否,则返回错误。
// Returns the URL to the application's Documents directory.
- (NSURL *)applicationDocumentsDirectory {
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
以您的示例这将返回
/var/mobile/applications/8EFCBF99-BC19-4AFE-934A-B47CBEDF2971/DOCUMENTS
这对您有帮助吗?我认为该方法包含在使用核心数据的所有Xcode项目类型的AppDelegate中。
这是一个示例:
NSString *validPath = [[[self applicationDocumentsDirectory] path] stringByAppendingPathComponent:@"test"];
NSString *invalidPath = @"/var/mobile/Applications/abc/test";
if (0 == [validPath rangeOfString:[[self applicationDocumentsDirectory] path]].location) {
// will be executed
NSLog(@"Valid path");
}
else {
NSLog(@"Invalid path");
}
if (0 == [invalidPath rangeOfString:[[self applicationDocumentsDirectory] path]].location) {
NSLog(@"Valid path");
}
else {
// will be executed
NSLog(@"Invalid path");
}