Objective c -enumaeratorAtPath:不在根级文件夹中工作
Posted
技术标签:
【中文标题】Objective c -enumaeratorAtPath:不在根级文件夹中工作【英文标题】:Objective c -enumaeratorAtPath: Not Working at root level folders 【发布时间】:2015-05-21 06:16:33 【问题描述】:我正在尝试枚举根级别的文件和文件夹
(/Users/Myname/Desktop or /Users/Myname/Documents),[enumarator nextobject] always gives nil value.
我该如何解决这个问题。
NSDirectoryEnumerator* enumerator = [[NSFileManager defaultManager] enumeratorAtPath:@"/Users/Myname/Desktop"];
NSString *content= [enumerator nextObject];//content always nil.
【问题讨论】:
@AminNegm-code 添加。 您不应将文档路径作为文字输入,而应使用NSSearchPathForDirectoriesInDomains()
。
感谢您的回复@AminNegm-Awad。我都试过了,但都不起作用,我怀疑是沙盒造成了这个问题。
是的,沙盒造成了这个问题。
【参考方案1】:
试试这个:
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDirectoryEnumerator * emuerator = [fileManager enumeratorAtPath:@"/usr/Myname/Desktop"];
NSString *filename; while ((filename = [emuerator
nextObject]))
NSLog (@"file! %@", filename);
或
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSFileManager *manager = [[NSFileManager alloc] init];
NSDirectoryEnumerator *emuerator= [manager enumeratorAtPath: @"/usr/Myname/Desktop"];
for (NSString *filename in emuerator)
// Do something with file
[manager release];
【讨论】:
以上是关于Objective c -enumaeratorAtPath:不在根级文件夹中工作的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac OS X 上结合 Objective-C 和 C/C++