检查文档目录 URL 是不是为空
Posted
技术标签:
【中文标题】检查文档目录 URL 是不是为空【英文标题】:Check if Documents Directory Url empty检查文档目录 URL 是否为空 【发布时间】:2017-11-29 17:01:08 【问题描述】:在下面的代码中,我试图检查我的文档目录 URL 是否为空,因此如果它为空,它将立即显示或继续执行我需要的操作。
这是我的代码:
- (IBAction)saveVideo:(id)sender
NSURL *vedioURL;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory error:nil];
NSLog(@"files array %@", filePathsArray);
NSString *fullpath;
for ( NSString *apath in filePathsArray )
fullpath = [documentsDirectory stringByAppendingPathComponent:apath];
vedioURL =[NSURL fileURLWithPath:fullpath];
NSLog(@"vurl %@",vedioURL);
NSURL *movieUrl = [NSURL fileURLWithPath:fullpath];
NSString *moviePath = [movieUrl path];
if (videoUrl.absoluteString.length == 0)
NSLog(@"No way");
else
self.imageViewPost.image = [self generateThumbImage:moviePath];
AVPlayerItem * playeritem = [AVPlayerItem playerItemWithURL:vedioURL];
[_player replaceCurrentItemWithPlayerItem:playeritem];
[_player play];
[self clearTmpDirectory];
应用程序崩溃了,它向我的 Url 显示 Null 值:
vurl (null)
2017-11-29 20:54:24.288473+0400 EasyVideo[43587:2429960] ***
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
我希望能解决这个问题。 谢谢
【问题讨论】:
这毫无意义。您对 Documents 文件夹中的所有文件和文件夹进行完整的递归列表。然后你遍历整个列表,只保留最后一个条目的结果(如果有的话)。然后假设最后一个条目是电影 URL。你为什么这么做?您的 Documents 文件夹可以包含各种文件和其他文件夹。你真的想在这里做什么? 在“if (videoUrl.absoluteString.length == 0)”实例中videoUrl和vedioURL是同一个实例?? 【参考方案1】:可以先从URL中获取数据,检查是否为空。
NSData *data = [NSData dataWithContentsOfURL:videoURL];
这里,如果数据不为空,您将相应地执行任务:
if (data == nil)
//Do not perform the task.
else
//perform the task
【讨论】:
以上是关于检查文档目录 URL 是不是为空的主要内容,如果未能解决你的问题,请参考以下文章
如何从 PHAsset 获取图像 URL?是不是可以使用 PHAsset URL 将图像保存到文档目录?
没有为请求的 URL 配置默认文档,并且没有在服务器上启用目录浏览?求解