计算目录和子目录中的文件?苹果手机

时间:2010-05-14 23:53:30

标签: iphone file count nsfilemanager subdirectory

我正在尝试计算目录中的整个文件,包括子目录。这是我必须计算第一个文件夹中的文件:

-(NSString *)numberOfPhotos
{
    NSString *MyPath = @"/rootdirectory/"; 
    NSArray *directoryContent = [[NSFileManager defaultManager] directoryContentsAtPath:MyPath]; 

    return [NSString stringWithFormat:@"%d", [directoryContent count]];
}

我想的可能是

for (file in folder){
    [file count]
{

但似乎没有用。

更新 实际上,很容易:

NSDirectoryEnumerator *subs = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:musicPath error:nil];

3 个答案:

答案 0 :(得分:5)

NSDirectoryEnumerator *subs = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:musicPath error:nil];

答案 1 :(得分:3)

你走在正确的轨道上。你需要一个递归方法。传入一个目录,该方法会抓取目录中的所有文件,然后检查每个文件以查看它是否是目录。在这里你有一个for循环来检查当前对象是否是一个目录。如果它是一个目录,那么它将使用目录名称调用自己。如果不是,它会将计数器递增1并继续。

现在无法发布代码,但这就是你的方式。

答案 2 :(得分:1)

看看我是否可以使用iPad键盘编写代码...使用伪代码来描述递归算法:

int fileCount(directory)
{
    int count = 0;
    for (file in directory)
    {
        if (isDirectory(file))
            count += fileCount(file);
        else
            count++;
    }
    return count;
}