zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Leetcode Substring with Concatenation of All Words
    Leetcode Divide Two Integers
    Leetcode Edit Distance
    Leetcode Longest Palindromic Substring
    Leetcode Longest Substring Without Repeating Characters
    Leetcode 4Sum
    Leetcode 3Sum Closest
    Leetcode 3Sum
    Leetcode Candy
    Leetcode jump Game II
  • 原文地址:https://www.cnblogs.com/wantnon/p/4351059.html
Copyright © 2011-2022 走看看