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

object-c 获得目录(包括子目录)下所有文件和文件夹路径的更多相关文章

  1. Java版本的在指定目录及子目录下创建指定的文件

    和删除指定目录及子目录下名叫“xxx.txt”的所有文件一样,也是使用递归的方式实现的. 代码如下: public class Example826003 { private static FileO ...

  2. Python——用os模块寻找指定目录(包括子目录)下所有图片文件

    import os # 导入os模块 def search_file(start_dir): img_list = [] extend_name = ['.jpg', '.png', '.gif'] ...

  3. Linux复制指定目录及子目录下特定类型的文件

    首先建立一个用于测试的目录,用'tree'命令查看其结构如下所示: 可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*.tes文件 目标是保持当前的目录结构,只把txt文件复制出来 方法一 ...

  4. 删除一个目录及其子目录下的所有.svn文件

    今天建立svn,加入代码,发现这些个文件夹中竟然已经有.svn文件夹,也就是它以前使用过svn, 这下就有点麻烦,在全新的svn里,这些.svn需要删除,又不可能一个一个手工去删除 网上翻了一下,发现 ...

  5. Java版本的删除指定目录及子目录下名叫“xxx.txt”的所有文件

    以前写过一个python版本的,但是在查找文件路径的时候出现错误,无法正确的获取到文件的路径,就造成无法删除该路径下的“xxx.txt”文件. 当时以为是windows版本系统的错误造成这个问题的,也 ...

  6. php读取目录及子目录下所有文件名的方法

    本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考.具体实现方法如下: 一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下: $dir= ...

  7. python递归列出目录及其子目录下所有文件

    python递归列出目录及其子目录下所有文件 一.前言 函数的递归,简单来说,就是函数内部调用自己 先举个小例子,求阶乘 def factorial(n): if n == 0: return 1 e ...

  8. java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数

    File 递归删除文件夹中所有文件文件夹 package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录 ...

  9. 2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到F盘下任意目录

    package cn.it.text; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...

  10. python查找目录及子目录下特定文件

    写这篇博客的缘由: 面试归来翻脉脉发现一个陌生的朋友提出一个面试题,设计实现遍历目录及子目录,抓取.pyc文件. 并贴出两种实现方法: 个人感觉,这两种方法中规中矩,不像是python的风格.pyth ...

随机推荐

  1. 向量的表示及协方差矩阵 (PCA的理论基础)

    原文:http://blog.csdn.net/songzitea/article/details/18219237 引言 当面对的数据被抽象为一组向量,那么有必要研究一些向量的数学性质.而这些数学性 ...

  2. 【5】基于Log4Net的日志系统

    阅读目录 日志系统应具备的特性  Log4Net 配置文件:log4net.config 初始化 输出信息 对Log4Net的封装 log4net.config复杂配置   不管是Web应用程序还是W ...

  3. Jmeter-Maven-Plugin高级应用:Configuring the jvm that the jmeter process runs in

    Configuring the jvm that the jmeter process runs in The JMeter Maven plugin will run the JMeter proc ...

  4. hdu4848 求到达每一个点总时间最短(sum[d[i]])。

    開始的时候是暴力dfs+剪枝.怎么也不行.后来參考他人思想: 先求出每一个点之间的最短路(这样预处理之后的搜索就能够判重返回了).截肢还是关键:1最优性剪枝(尽量最优:眼下的状态+估计还有的最小时间& ...

  5. 编程算法 - 二叉搜索树 与 双向链表 代码(C++)

    二叉搜索树 与 双向链表 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目:输入一颗二叉搜索树, 将该二叉搜索树转换成一个排序的双向链表. 要求 ...

  6. Android之新建项目

    最近开始接触Android,实践出真理,接下来实际创建Android应用程序. 1.启动Eclipse,依次选择 " File/New/Project... " 或 " ...

  7. Mahout0.6-VectorDumper bug修复

    VectorDumper类的功能是从SequenceFile中按照键值对的方式读取信息并将其转化为文本形式,具体使用见第五部分1.1.2节第3)条.如果不对源码进行修改使用时存在两个bug,现在只对b ...

  8. 学习Struts框架系列(三):声明式异常处理

    在Struts1.X的版本中加入了对异常的处理Exception Handler,有了它我们可以不使用try/catch捕获异常,一旦出现了我们已经定义的异常,那么就会转到相应的页面,并且携带异常信息 ...

  9. 【设计模式】学习笔记15:代理模式(Proxy Pattern)

    本文出自   http://blog.csdn.net/shuangde800 本笔记内容: 1. JAVA远程代理调用(RMI) 2. 代理模式 走进代理模式 在上一篇的状态模式中,我们实现了一个糖 ...

  10. Nginx负载均衡简易方法

    做个简单的测试,一个Nginx, 通过FastCGI协议和另外两台服务器上的基于CppCMS开发的web server通信.配置方法很简单: 首先,必须在nginx.conf文件开头,server 配 ...