我正在尝试计算目录中的整个文件,包括子目录。这是我必须计算第一个文件夹中的文件:
-(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];
答案 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;
}