首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从文档目录ios中按文件名获取文件路径

从文档目录ios中按文件名获取文件路径
EN

Stack Overflow用户
提问于 2014-05-21 18:43:55
回答 3查看 32.2K关注 0票数 17

在我的应用程序中,我下载了PDF文件,这些文件存储在不同子文件夹下的"Document“目录中。

现在我有了文件名,我想在"Document“目录中获得它的路径,但问题是我不知道该文件存储在哪个子文件夹下。

那么有没有什么方法可以通过文件名给出文件路径,就像有一种方法适用于主包:

代码语言:javascript
复制
(NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension

我不想遍历每个文件夹,这是一种乏味的方式。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-21 19:02:32

您可以搜索文档目录,如下所示:

代码语言:javascript
复制
NSString *searchFilename = @"hello.pdf"; // name of the PDF you are searching for

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSDirectoryEnumerator *direnum = [[NSFileManager defaultManager] enumeratorAtPath:documentsDirectory];

NSString *documentsSubpath;
while (documentsSubpath = [direnum nextObject])
{
  if (![documentsSubpath.lastPathComponent isEqual:searchFilename]) {
    continue;
  }

  NSLog(@"found %@", documentsSubpath);
}

编辑:

您也可以使用NSPredicate。如果文档目录中有数千个文件,则可能会崩溃,并出现内存不足错误。

代码语言:javascript
复制
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.lastPathComponent == %@", searchFilename];
NSArray *matchingPaths = [[[NSFileManager defaultManager] subpathsAtPath:documentsDirectory] filteredArrayUsingPredicate:predicate];

NSLog(@"%@", matchingPaths);
票数 18
EN

Stack Overflow用户

发布于 2016-04-12 19:10:03

Swift 2.2非常简单:

代码语言:javascript
复制
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first! as NSString
let plistPath = paths.stringByAppendingPathComponent("someFile.plist")
票数 2
EN

Stack Overflow用户

发布于 2014-05-21 19:09:52

您必须遍历整个树才能找到该文件;在~/Documents目录中没有与-pathForResource:ofType等效的文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23780928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档