【问题标题】:How can i get the count of the files in a folder? [duplicate]如何获取文件夹中文件的数量? [复制]
【发布时间】:2011-07-21 15:30:59
【问题描述】:

如何在 iOS 上获取文件夹中的文件数?

【问题讨论】:

    标签: iphone objective-c cocoa-touch


    【解决方案1】:
    NSFileManager *filemgr = [NSFileManager defaultManager];
    
    NSArray *filelist= [filemgr directoryContentsAtPath: yourPath];
    
    int count = [filelist count];
    
    NSLog ("%i",count);
    

    【讨论】:

    • directoryContentsAtPath: 已弃用。查看@bitmapdata.com 的回答
    【解决方案2】:

    directoryContentsAtPath: 已弃用。

    如果您想获取 Documents 文件夹的文件数。

    试试这个。

    NSFileManager *fm = [NSFileManager defaultManager];
    NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSArray *filelist= [fm contentsOfDirectoryAtPath:[docPaths objectAtIndex:0] error:nil];
    int filesCount = [filelist count];
    NSLog(@"filesCount:%d", filesCount);
    

    【讨论】:

    • 这是递归计数吗?
    • @Patrick 不,这不是递归计数。
    • 谢谢!快速提问,是否有任何内置方法可以按文件类型进行过滤,或者我应该遍历并检查名称?
    【解决方案3】:

    - (NSArray *)directoryContentsAtPath:(NSString *)path 已弃用。请改用- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error。这意味着 Matt S 的上述代码将变为:

    NSFileManager * filemgr = [NSFileManager defaultManager];
    NSArray * filelist = [filemgr directoryContentsAtPath:yourPath error:nil];
    int count = [filelist count];
    NSLog("%d", count);
    

    【讨论】:

      【解决方案4】:
      NSArray* files = [[NSFileManager defaultManager] directoryContentsAtPath:DIRECTORY];
      NSLog(@"%d",[files count]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-22
        • 2012-07-12
        相关资源
        最近更新 更多