Objective c 如何用目录名填充NSArray?

Objective c 如何用目录名填充NSArray?,objective-c,arrays,Objective C,Arrays,我正在寻找一种用NSString填充NSArray的方法,NSString是apps documents目录中目录的名称 这就是我到目前为止所做的: NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; for (//l

我正在寻找一种用NSString填充NSArray的方法,NSString是apps documents目录中目录的名称

这就是我到目前为止所做的:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    for (//loop until no more directories)
    {
         NSString *newDir = [documentsDirectory stringByAppendingPathComponent:path];

         //Code for retrieving directory names
         [directoriesArray addObject:newDir]; 
    }
我不确定for循环的条件是什么,也不确定如何检索目录名

提前谢谢你的建议。

试试这个

NSFileManager *fileManager = [NSFileManager defaultManager];
filesArray = [[fileManager contentsOfDirectoryAtPath:urDocumentsFolderPath error:nil] retain];

for(NSString *file in filesArray) {
//Do something
}
那么你的情况呢

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *fileManager = [NSFileManager defaultManager];
filesArray = [[fileManager contentsOfDirectoryAtPath:documentsDirectory error:nil] retain];
for(NSString *file in filesArray) 
{
  NSString *newDir = [documentsDirectory stringByAppendingPathComponent:file];
  //Code for retrieving directory names
  [directoriesArray addObject:newDir]; 
}
希望这有助于

“应用程序文档目录”=~/Users/User/Applications?NSDocuments目录还是NSApplication目录

也许:

NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL fileIsDirectory = FALSE;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *content = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:NULL]; //OSX v10.5
NSEnumerator *enumeratorContent = [content objectEnumerator];
NSString *file;

while ((file = [emumeratorContent nextObject])) {
    NSAutoreleasePool *pool = [NSAutoreleasePool new];
    if (fileManager fileExistAtPath:[documentsDirectory stringByAppendingPathComponent:file] isDirectory:&fileIsDirectory && fileIsDirectory)
        [directoriesArray addObject:file];
    [pool drain];

尝试使用NSDirectoryEnumerator(OSX v.10.0)或NSURL(OSX v.10.6)。

它可以工作,非常感谢!但顺便说一句,directoryContentsAtPath被贬低了。我使用了contentsOfDirectoryAtPath:error:代替。