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

时间:2014-04-30 15:26:41

标签: ios objective-c nsfilemanager

我希望返回NSArray,其中包含URLS中特定文件夹中的所有文件iOS

在这种情况下,我正在查看 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);

感谢。

1 个答案:

答案 0 :(得分:1)

如评论中所述,请使用- (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];