Vir*_*Max 17 objective-c nsfilemanager nsbundle ios
在我的应用程序中,我下载PDF文件,该文件存储在不同子文件夹下的"Document"目录中.
现在我有文件名,我想在"文档"目录中获取其路径,但问题是我不知道存储该文件的确切子文件夹.
那么有没有任何方法可以通过文件名给我文件路径,就像有一种方法适用于主包:
(NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension
Run Code Online (Sandbox Code Playgroud)
我不想遍历每个文件夹,这是一个繁琐的方式.
谢谢.
Abh*_*ert 18
您可以像这样搜索文档目录:
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);
}
Run Code Online (Sandbox Code Playgroud)
编辑:
您也可以使用NSPredicate.如果文档目录中有数千个文件,则可能会因内存不足错误而崩溃.
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.lastPathComponent == %@", searchFilename];
NSArray *matchingPaths = [[[NSFileManager defaultManager] subpathsAtPath:documentsDirectory] filteredArrayUsingPredicate:predicate];
NSLog(@"%@", matchingPaths);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30265 次 |
| 最近记录: |