如果您想读取任意目录中的文件,路径枚举器可以很好地工作。有点过时,但这也有它的魅力。
NSString *docPath = @"/tmp";
NSDirectoryEnumerator *dirEnum = [[NSFileManager defaultManager] enumeratorAtPath:docPath];
NSString *filename;
while ((filename = [dirEnum nextObject])) {
//Do something with the file name
}
如果您想从主目录中的知名和已定义目录中读取,则可以使用NSSearchPathForDirectoriesInDomains
:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [paths objectAtIndex: 0];
这将为您提供您的 Documents 目录,当与上面的代码片段一起使用时,列出该文件夹和子文件夹中的所有文件。
请注意,我们实际上不应该再使用我们漂亮的旧 Unix 路径,而是引用 URL。
在这种情况下,你会得到类似的东西:
NSArray *URLs = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
NSURL *docURL = URLs[0];
NSDirectoryEnumerator *URLEnum = [[NSFileManager defaultManager] enumeratorAtURL: docURL includingPropertiesForKeys: nil options: 0 errorHandler: nil];
NSString *filename;
while ((filename = [URLEnum nextObject])) {
// ...
}
请注意,它enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:
具有各种有用的参数,您可以在docs中阅读。