• object-c 获得目录(包括子目录)下所有文件和文件夹路径


    void getAllPathNameInDirectory(vector<string>&filePathList,vector<string>&directoryPathList){

        NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];

        NSURL *directoryURL = [NSURL URLWithString:@"toolKitRes/model"];   // URL pointing to the directory you want to browse

        NSArray *keys = [NSArray arrayWithObject:NSURLIsDirectoryKey];

        

        NSDirectoryEnumerator *enumerator = [fileManager

                                             enumeratorAtURL:directoryURL

                                             includingPropertiesForKeys:keys

                                             options:0

                                             errorHandler:^(NSURL *url, NSError *error) {

                                                 // Handle the error.

                                                 // Return YES if the enumeration should continue after the error.

                                                 return YES;

                                             }];

        vector<string> fullPathList;

        for (NSURL *url in enumerator) {

            NSError *error;

            NSNumber *isDirectory = nil;

            if (! [url getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:&error]) {

                // handle error

                

            }

            else if (! [isDirectory boolValue]) {

                // No error and it’s not a directory; do something with the file

                NSString *str_NS=[[url absoluteString] stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding];

                //// NSLog(@"%@",str_NS);

                

                string fullPath=[str_NS cStringUsingEncoding:NSASCIIStringEncoding];

                filePathList.push_back(fullPath);

            }else if([isDirectory boolValue]){

                NSString *str_NS=[[url absoluteString] stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding];

               //// NSLog(@"%@",str_NS);

                

                string fullPath=[str_NS cStringUsingEncoding:NSASCIIStringEncoding];

                directoryPathList.push_back(fullPath);

            

            }

        }

    }

    注意:要用

    NSString *str_NS=[[url absoluteString] stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; (见参考[2])

    不能像 参考[1] 中那样写成

    NSString *str_NS=[url absoluteString];

    否则如果路径中带有空格,则会变成%20。

    参考[1]: http://stackoverflow.com/questions/5749488/iterating-through-files-in-a-folder-with-nested-folders-cocoa

    参考[2]: http://stackoverflow.com/questions/11262893/nsurl-to-nsstring

  • 相关阅读:
    如何雇人的十五条建议
    如何通过预加载器提升网页加载速度
    提升代码内外部质量的22条经验
    敏捷团队的组织与管理--- MPD软件工作坊培训感想(下)
    敏捷开发的道与术---MPD软件工作坊培训感想(上)
    分享自制的C#和VB Code互转工具
    基于 WPF 平台的 ActiveReports Viewer控件
    在ASP.NET MVC 中使用ActiveReports报表控件
    根据数据源字段动态设置报表中的列数量以及列宽度
    在ActiveReports页面报表中显示Google地图
  • 原文地址:https://www.cnblogs.com/wantnon/p/4351059.html
Copyright © 2020-2023  润新知