返回每个文件的文件 URL 的 NSArray

Posted

技术标签:

【中文标题】返回每个文件的文件 URL 的 NSArray【英文标题】:Return an NSArray of File URLS for Each File 【发布时间】:2014-04-30 15:26:40 【问题描述】:

我希望返回一个NSArray,其中包含位于ios 的特定文件夹中的所有文件URLS

在这种情况下,我正在查看 Ryan/Bob/FolderWithInfo - 其中包含 4 个文件。我想获取每个文件的URL 文件。

这是我正在寻找的输出示例:

NSArray *array = @[

@"file:///var/mobile/Applications/8D5EBBB2-6726-4FE9-95CB-453635443643/Documents/Ryan/Bob/FolderWithInfo/Layout1.csv",
@"file:///var/mobile/Applications/8D5EBBB2-6726-4FE9-95CB-453635443643/Documents/Ryan/Bob/FolderWithInfo/Layout2.csv",
@"file:///var/mobile/Applications/8D5EBBB2-6726-4FE9-95CB-453635443643/Documents/Ryan/Bob/FolderWithInfo/Layout3.csv",
@"file:///var/mobile/Applications/8D5EBBB2-6726-4FE9-95CB-453635443643/Documents/Ryan/Bob/FolderWithInfo/Layout4.csv",
];

这是如何实现的?

编辑: 我已经尝试过这个并考虑过可能会在主路径之前添加,但必须有一种更有效的方法:)

NSError *error;
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *directory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
directory = [NSString stringWithFormat:@"%@/%@/%@/%@", directory, @"Ryan, @"Bob", @"FolderWithInfo"];

NSArray *files=[fileMgr contentsOfDirectoryAtPath:directory error:&error];
NSLog(@"mag1 directory: %@",files);

谢谢。

【问题讨论】:

How do I get an NSArray of filenames of all files in a given directory in my app?的可能重复 ***.com/a/907444/2043580 但请注意NSFileManager 只返回相对文件名。所以你应该使用[basePath stringByAppendingPathComponent:fileName]来获取绝对路径。 @CodeMound 你得到文件名,然后你可以简单地添加文件夹路径。 @CodeMound 返回 URL 的 NSFileManager 方法提供完整的 URL。它是返回 NSString 数组的那些返回文件名。 【参考方案1】:

如 cmets 中所说,使用 - (NSArray *)contentsOfDirectoryAtURL:(NSURL *)url includingPropertiesForKeys:(NSArray *)keys options:(NSDirectoryEnumerationOptions)mask error:(NSError **)error

NSFileManager *fm = [NSFileManager defaultManager];

NSError *error;
NSURL *url = [NSURL URLWithString:@"file:///Users/leandros/temp"];
NSArray *urls = [fm contentsOfDirectoryAtURL:url includingPropertiesForKeys:nil options:0 error:&error];

【讨论】:

以上是关于返回每个文件的文件 URL 的 NSArray的主要内容,如果未能解决你的问题,请参考以下文章

给定ab两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出ab文件共同的url?

从 URL 下载返回的 Zip 文件

String(contentsOf: URL) 返回“没有这样的文件或目录”

给定ab两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出ab文件共同的url?

在微服务之间传输文件

Python 循环遍历 csv 文件中的 url 返回 \ufeffhttps://