如何从iOS文档目录中过滤带扩展名的文件?

时间:2013-07-24 14:19:30

标签: ios cocoa-touch nsfilemanager

您好我现在正在iOS中的文档目录中检索文件。

我也是按CreationDate排序的文件。

在我的文档目录中,它还有很多文件夹和文件。

因此,当我从文档目录中检索所有文件时,该文件夹名称也包括在内。

我只想检索(.txt)格式文件。

我该怎么做?

2 个答案:

答案 0 :(得分:5)

假设所有文件都有扩展名,您可以创建谓词并使用它来过滤数组。谓词的格式如下:

@"self ENDSWITH '.txt'"

根据您在下面的评论,您实际上拥有完整文件NSURL,而不是字符串文件名。所以你应该使用谓词格式:

@"absoluteString ENDSWITH '.txt'"

答案 1 :(得分:2)

这是对@Wain的答案的补充,并假设您使用webview加载文本文件

  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString *documentsDirectory = [paths objectAtIndex:0];
  NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory  error:nil];
  NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF EndsWith '.txt'"];
  filePathsArray =  [filePathsArray filteredArrayUsingPredicate:predicate];
  NSLog(@"files array %@", filePathsArray);
  NSString *localDocumentsDirectoryVideoFilePath = [documentsDirectory
                                                    stringByAppendingPathComponent:[filePathsArray objectAtIndex:0]];
  NSURL *fileUrl=[NSURL fileURLWithPath:
                   localDocumentsDirectoryVideoFilePath];
  [_webview loadRequest:[NSURLRequest requestWithURL:fileUrl]];

这里_webview是一个IBOutlet。此外,它正在加载第一个文本文件 我希望这会有所帮助。