如何在沙盒中获取文档的所有文件名?

时间:2011-05-30 20:27:05

标签: iphone ios

我有以下代码:

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

但是我对如何获取所有文件名并将它们分配给数组一无所知?

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:11)

NSFileManager有一个名为contentsOfDirectoryAtPath:error:的方法,它返回该目录中所有文件的数组。

你可以像这样使用它:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
if([paths count] > 0)
{
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSError *error = nil;
    NSArray *documentArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:&error];
    if(error)
    {
        NSLog(@"Could not get list of documents in directory, error = %@",error);
    }
}

documentsArray对象将包含该目录中所有文件的列表。

答案 1 :(得分:4)

使用NSFileManager的contentsOfDirectoryAtPath:error:方法。

答案 2 :(得分:1)

    NSError *error;
    NSFileManager* fileMgr = [NSFileManager defaultManager];
    NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    NSArray* documentsArray = [fileMgr contentsOfDirectoryAtPath:documentsDirectory error:&error];
    [documentsArray count];

另一种方法是为那些设置不同的人做这件事。