从文件列表中识别目录

时间:2012-02-04 23:09:03

标签: objective-c ios cocoa-touch

我可以在路径中获取文件列表,但是我无法从列表中删除所有目录

    fileList = [[myFileManager contentsOfDirectoryAtPath:[NSString 
stringWithFormat:@"%@/%@",documentsDir,  appDelegate.user_name] error:&theError] 
retain];



NSLog(@"FileList: %@", fileList);

for (int i =0; i< [fileList count]; i++)
{
    NSString *fileName = [fileList objectAtIndex:i];

    if ([fileName hasSuffix:@"dir"])
    {
        NSLog(@"dir found");
        [fileList removeObjectAtIndex:i];
        i--;
    }
}

我显然误解了如何执行此操作,有人可以建议我如何执行此操作吗?

1 个答案:

答案 0 :(得分:0)

for (NSString *path in fileList) {

  BOOL isDir = NO;
  if ([[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDir]) {

    if(isDir){
        //...
    }
  }
}

来自doc

- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory
     

<强>参数
   path 文件或目录的路径。如果path以波浪号(〜)开头,则必须首先使用stringByExpandingTildeInPath进行扩展,或者   这个方法会返回NO。

     

isDirectory 返回时,如果path是目录或者最终路径元素是指向目录的符号链接,则包含YES,   否则包含NO。如果path不存在,则返回值为   未定义。如果您不需要此信息,请传递NULL。