【发布时间】:2013-07-24 02:05:57
【问题描述】:
您好,我现在正在从 iOS 的文档目录中检索文件。
我还按 CreationDate 对文件进行了排序。
在我的文档目录中,还有很多文件夹和文件。
因此,当我从文档目录中检索所有文件时,该文件夹名称也包括在内。
我只想检索 (.txt) 格式的文件。
我该怎么做?
【问题讨论】:
标签: ios cocoa-touch nsfilemanager
您好,我现在正在从 iOS 的文档目录中检索文件。
我还按 CreationDate 对文件进行了排序。
在我的文档目录中,还有很多文件夹和文件。
因此,当我从文档目录中检索所有文件时,该文件夹名称也包括在内。
我只想检索 (.txt) 格式的文件。
我该怎么做?
【问题讨论】:
标签: ios cocoa-touch nsfilemanager
这是对@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。此外,它正在加载第一个文本文件。
我希望这会有所帮助。
【讨论】:
假设所有文件都有扩展名,您可以创建一个谓词并使用它来过滤数组。谓词的格式如下:
@"self ENDSWITH '.txt'"
根据您在下面的评论,您实际上拥有完整的文件NSURL,而不是字符串文件名。所以你应该使用谓词格式:
@"absoluteString ENDSWITH '.txt'"
【讨论】:
NSURL to a NSString。您不能在 NSURL 上调用 NSString 函数。
absoluteString。