iphone 获取某一个目录中的所有文件列表(转)

iOS开发中对文件目录的访问及管理的基本方法小结 文件目录的访问 最简单的:(由于是沙盒关系,没有文件夹概念的) 代码如下: UIImage* image = [UIImage imageNamed:@”11.png”]; 这个已经是相对app里面打包好的路径,不需要额外添加路径。 还有一种就是需要指定文件路径的: 需要用到NSBundle. 代码如下: [[NSBundle mainBundle] resourcePath],这个就是程序的打包后的路径。 如果需要指定路径,就要这样写: 你也可自己拼接: 代码如下: NSString* path = [NSStringstringWithFormat:@”%@/%@/%@”,[[N 立即下载

转自:http://blog.youkuaiyun.com/javali1984/article/details/6559558

NSFileManager *fileManager = [NSFileManager defaultManager];
//在这里获取应用程序Documents文件夹里的文件及文件夹列表
        NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentDir = [documentPaths objectAtIndex:0];
        NSError *error = nil;
        NSArray *fileList = [[NSArray alloc] init];
//fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
        fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];

    以下这段代码则可以列出给定一个文件夹里的所有子文件夹名

NSMutableArray *dirArray = [[NSMutableArray alloc] init];
        BOOL isDir = NO;
//在上面那段程序中获得的fileList中列出文件夹名
        for (NSString *file in fileList) {
                NSString *path = [documentDir stringByAppendingPathComponent:file];
                [fileManager fileExistsAtPath:path isDirectory:(&isDir)];
                if (isDir) {
                        [dirArray addObject:file];
                }
                isDir = NO;
        }
        NSLog(@"Every Thing in the dir:%@",fileList);
        NSLog(@"All folders:%@",dirArray);

 

ios访问Documents目录下的文件的注意点

ios访问Documents目录下的文件,注意:

1>.拼接的路径字符串是否正确;

2>.拼接的路径的方式:

     第一种, 字符串变量 + ...+字符串常量 拼接:

    demo1:

    NSString* docPath = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"]; 

    NSString* path = [NSString stringWithFormat: @"%@/%@", docPath, @"23.png"];

    

    demo2:

    NSString* docPath = [NSHomeDirectory()stringByAppendingPathComponent:@"Documents"];  

    NSString* path =  [NSStringstringWithFormat: @"%@%@.png", docPath, aFileName];  

    "23.png", ".png"是我说的常量.


    第二种, 字符串变量 + ...+字符串变量 拼接:

    NSString* docPath = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"];  

    NSString* path =  [NSString stringWithFormat: @"%@%@", docPath, aFileName];  


    现在要说的是第二种方法是错误的,因为在NSString字符串变量末位有'\0'字符,

而文件相关的API要求路径字符串末位不能包含'\0'字符,所以在路径format的时候要注意最后一个字符串不能为NSString

变量,必须为字符串常量.如果要在一个路径后面追加路径NSString变量, 请使用stringByAppendingPathComponent方法,

添加后缀请使用stringByAppendingPathExtension方法.

 

iOS 获取用户主目录
http://blog.sinzy.net/jinjian/entry/22283

使用底层的C函数NSHomeDirectory() 能够访回当前app当前用户的主目录
用户数据都建议放在/Documents中
每一个iOS应用沙盒都有/Documents目录
NSString  *path = [NSHomeDirectory() stringByAppendingString:USER_FILE];
补方法二
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
[paths objectAtIndex:0] 即为/Documents根目录
NSString  *plistPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"myfile.txt"];

 

iOS中对文件的操作
http://marshal.easymorse.com/archives/3340

 

因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件:


Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录
tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除
Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
在Documents目录下创建文件

代码如下:


 

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory
                                            , NSUserDomainMask 
                                            , YES); 
NSLog(@"Get document path: %@",[paths objectAtIndex:0]);

NSString *fileName=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"myFile"]; 
NSString *content=@"a"; 
NSData *contentData=[content dataUsingEncoding:NSASCIIStringEncoding]; 
if ([contentData writeToFile:fileName atomically:YES]) { 
    NSLog(@">>write ok."); 
}


 

可以通过ssh登录设备看到Documents目录下生成了该文件。

上述是创建ascii编码文本文件,如果要带汉字,比如:


 

NSString *fileName=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"myFile"]; 
NSString *content=@"更深夜静人已息"; 
NSData *contentData=[content dataUsingEncoding:NSUnicodeStringEncoding]; 
if ([contentData writeToFile:fileName atomically:YES]) { 
    NSLog(@">>write ok."); 
}


 

如果还用ascii编码,将不会生成文件。这里使用NSUnicodeStringEncoding就可以了。

通过filezilla下载到创建的文件打开,中文没有问题:

iphone 获取某一个目录中的所有文件列表 - ♂苹果 - 眼睛想旅行

 
在其他目录下创建文件

如果要指定其他文件目录,比如Caches目录,需要更换目录工厂常量,上面代码其他的可不变:


 

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory
                                                , NSUserDomainMask 
                                                , YES);

 


 

使用NSSearchPathForDirectoriesInDomains只能定位Caches目录和Documents目录。

tmp目录,不能按照上面的做法获得目录了,有个函数可以获得应用的根目录:


 

NSHomeDirectory()


 

也就是Documents的上级目录,当然也是tmp目录的上级目录。那么文件路径可以这样写:


 

NSString *fileName=[NSHomeDirectory() stringByAppendingPathComponent:@"tmp/myFile.txt"];


 

或者,更直接一点,可以用这个函数:


 

NSTemporaryDirectory()


 

不过生成的路径将可能是:


 

…/tmp/-Tmp-/myFile.txt


使用资源文件

在编写应用项目的时候,常常会使用资源文件,比如:

iphone 获取某一个目录中的所有文件列表 - ♂苹果 - 眼睛想旅行

 安装到设备上后,是在app目录下的:

iphone 获取某一个目录中的所有文件列表 - ♂苹果 - 眼睛想旅行

 以下代码演示如何获取到文件并打印文件内容:


 

NSString *myFilePath = [[NSBundle mainBundle] 
                        pathForResource:@"f" 
                        ofType:@"txt"]; 
NSString *myFileContent=[NSString stringWithContentsOfFile:myFilePath encoding:NSUTF8StringEncoding error:nil]; 
NSLog(@"bundel file path: %@ \nfile content:%@",myFilePath,myFileContent);

 


 

代码运行效果:

iphone 获取某一个目录中的所有文件列表 - ♂苹果 - 眼睛想旅行

 
 

IOS获取各种文件目录路径的方法 iphone沙箱模型有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library。 (NSHomeDirectory()), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1、Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。 2、AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会 立即下载

相关推荐

自动换挡频率计的设计精髓:如何用数字电路优雅地解决量程切换难题

本文深入解析了自动换挡频率计的设计精髓,重点探讨如何利用数字电路优雅解决量程切换难题。通过74系列通用数字集成电路构建智能化的自动量程切换系统,详细介绍了状态检测、决策逻辑和档位执行等核心模块的设计方法,并对比了不同实现方案的优劣,为电子测量领域的工程师提供了实用的硬件设计参考。

weixin_27869497的博客 407

iOS获取文件夹下所有的文件

NSString *from = @"/Users/xiaomage/Desktop/From"; NSFileManager *mgr = [NSFileManager defaultManager]; NSArray *subpaths = [mgr subpathsAtPath:from]; 复制代码 转载于:https://juejin.im/post/5a310070f265...

weixin_30564901的博客 1117

FPGA实战:MIG IP核AXI接口DDR3读写优化指南

本文详细解析了FPGA中MIG IP核AXI接口的DDR3读写优化策略,涵盖关键参数配置、突发传输技巧及时序收敛方案。通过AXI接口优化和突发长度选择,可实现高达12.8GB/s的理论带宽,提升DDR3访问效率。文章还提供了Vivado配置实例和调试技巧,助力开发者解决FPGA内存控制中的实际问题。

weixin_29168393的博客 546

ios 获取目录中的所有指定类型的文件

功能实现 @interface ResourceFinder : NSObject + (void)test:(NSString * const)string; + (vector<string>)getAllFilesWithinPath:(NSString *) path :(vector<string>&) t_files; @end @implementation ResourceFinder + (void)test:(NSString * const)str

zxcasd11的博客 1031

智能筛选栏 SmartFilterBar 全面解析与实战指南

SmartFilterBar 把复杂的检索界面“模板化”,让开发者聚焦业务逻辑与后端数据质量,而非 UI 小细节。通过精准运用 CDS 注解与 OData 元数据,它能在几毫秒内拼装出专业级筛选体验;结合事件钩子与控制配置,又足以满足极端个性化需求。拥抱 SmartFilterBar,意味着在 Fiori 生态中以最少代码赢得最快价值交付——这正是现代企业应用开发追求的极致效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 404

C++程序发生内存越界,一定会导致程序崩溃吗?详解内存越界

内存越界是否一定会导致程序崩溃吗?详解内存越界

dvlinker的技术专栏 1万+

iOS-获取某个path下的所有文件

【代码】iOS-获取某个path下的所有文件。

sgliquangang的专栏 438

被搜狗输入法背刺了!偷偷装的 “AI 汪仔” 狂占 CPU!手把手教你如何彻底关闭删除搜狗AI功能AI汪仔

手把手教你如何彻底关闭删除搜狗输入法的AI汪仔🚀

XiaoqiangClub的博客 2万+

ios获取一个文件夹下的文件(夹)列表

NSArray* ary=[[NSFileManager defaultManager] contentsOfDirectoryAtPath:[[NSBundle mainBundle] pathForResource:@"folderName" ofType:nil] error:nil]; 转载于:https://www.cnblogs.com/coolbear/p/3778289.html...

weixin_30847271的博客 280

Android SystemUI——自定义状态栏和导航栏(十二)

通过前面的文章内容,我们了解了Android系统原生的状态栏StatusBar和车载系统状态栏CarStatusBar的启动流程以及视图构建流程,这里我们来简单的看一下自定义状态栏和导航栏视图的实现流程。

小旭的专栏 2012

SOUL.md 人格定制的 7 个高阶技巧:Hermes Agent 精准控制 AI 行为模式

揭示 SOUL.md 的本质是行为契约而非人格设定,介绍7个围绕边界约束的高阶技巧,包括用上下文锚点(INPUT SCOPE/OUTPUT TARGET/CONSTRAINTS)替代角色描述、动态渲染锚点适配CI流程等,显著降低token消耗与人工review耗时。

weixin_42520239的博客 252

IOS-遍历文件夹下面的所有文件名

NSFileManager *fileManager = [NSFileManager defaultManager];          NSArray * paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);     NSString *docume

u011118092的博客 3882

5G射频到底是啥?方案怎么搭?工作流程、SAW选型、PA选型一口气讲透(工程师秒懂版)

很多人一提 5G 射频,脑子里先冒出来的是几个零件名:👉 PA👉 LNA👉 SAW👉 天线👉 开关但真正做方案时,这些东西不是一堆分立器件,而是一条完整的“信号流水线”。更准确地说,。Qualcomm 对 RFFE 的定义就是“把信息转换成可发送的射频信号,并把接收到的信号转换回有用信息”的那一整套组件。

weixin_43199439的博客 534

iphone 获取某一个目录中的所有文件列表

NSFileManager *fileManager = [NSFileManager defaultManager];//在这里获取应用程序Documents文件夹里的文件及文件夹列表        NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMas

2685

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

iphone 的文件目录和简单介绍

1、【/Applications】     常用软件的安装目录    2.    【/private/var/ mobile/Media /iphone videoRecorder】    iphone video Recorder录像文件存放目录  3、 【/private /var/ mobile/Media /DCIM】  相机拍摄的照片文件存放目录  4、 【/private

大萝卜 2469

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

iphone:使用NSFileManager取得目录下所有文件(遍历所有文件)

From:http://note.sdo.com/u/xiaowan3/n/d1mS~j-WlZiwE0jI008XI iphone使用NSFileManager取得目录下所有文件(遍历所有文件) iphone取得目录下所有文件,示例函数:     - (NSArray*) allFilesAtPath:(NSString*) dirString {         NSM

アーキテクトがしたい! 872

苹果iPhone手机内文件目录大全

 最全最详细!苹果iPhone手机内文件目录大全!应该是现今国内最全的iPhone手机目录~众所周之,iPhone采用的是MAC OS系统,所以如果了解了内部文件结构,也就意味着可以很容易更改一些设置!![/Applications][/Calculator.app]  Calculator  CalculatorBackground.png  Default.png  [/English

dadalan的专栏 5万+

获取 iPhone程序的文档目录的方法

iPhone程序的文档目录通常用于储存用户数据,下面介绍2种获取 iPhone程序的文档目录的方法,转自 iphone-geek.cn方法一: 12 NSString* documentsDirectory ...

weixin_30894389的博客 256

iphone ios 程序的文件目录结构

对于一个iPhone app,它无法访问iPhone整个的文件系统,取而代之的 是这个iPhone app自己的Home目录中的内容。这也就是所谓的sand box。 你可以使用NSHomeDirectory()方法来返回一个 iPhone app的Home dir

4954

获取iPhone已经安装程序列表

首先,必须确定iPhone是越狱的,并且你的下面代码运行的目录为/Applications/. NSFileManager* fileManager = [NSFileManager defaultManager]; NSMutableArray* applist = [NSMutableArray arrayWithCapacity:10]; for (NSStr...

diezhi9415的博客 185

iOS中获取各种文件的目录路径和文件

iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library。 (NSHomeDirectory()), 手动保存的文件在documents文件里 NSUserdefaults保存的文件在tmp文件夹里 1、Documents 目录:您应该将所有de应用程序数据文件写入...

anggengting9489的博客 150

iphone编程--详解ios文件系统文件目录读写操作

iPhone文件读写系统操作教程是本文要介绍的内容,对于一个运行在iPhone得app,它只能访问自己根目录下得一些文件(所谓sandbox).一个app发布到iPhone上后,它得目录结构如下:    1、其中获取 app root 可以用 NSHomeDirectory() 访问到;    2、Documents 目录就是我们可以用来写入并保存文件得地方,一般可通过以下代码获取,

taylor的专栏 6957

【IOS】获取各种文件的目录路径的方法

From: http://blog.youkuaiyun.com/xuqiang918/article/details/12614509 iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library。 (NSHomeDirectory()), 手动保存的文件在docume

Game Developer 553

ios 计算文件夹大小 列举目录/文件

-(long)fileSizeForDir:(NSString*)path//计算文件夹下文件的总大小 { long size = 0; NSFileManager *fileManager = [[NSFileManager alloc] init]; NSArray* array = [fileManager contentsOfDirectoryAtPath:path

The Life with iOS 2096
上一篇: NSUserDefaults 的用法(转)
下一篇: 先收藏了,回头再转
woodcol
博客等级 码龄19年 288粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值