1

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

-(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];
4

3 回答 3

5
NSDirectoryEnumerator *subs = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:musicPath error:nil];
于 2010-05-20T15:48:09.970 回答
3

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

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

于 2010-05-15T00:24:59.700 回答
1

看看能不能用iPad键盘写代码……用伪代码描述递归算法:

int fileCount(directory)
{
    int count = 0;
    for (file in directory)
    {
        if (isDirectory(file))
            count += fileCount(file);
        else
            count++;
    }
    return count;
}                
于 2010-05-15T16:58:04.917 回答