我们的app在手机中存放的路径是:/var/mobile/Applications/4434-4453A-B453-4ADF535345ADAF344

后面的目录4434-4453A-B453-4ADF535345ADAF344是iPhone自动生成的,里面包含了四个文件夹:
  (1)AppName.app 目录:这是应用程序的程序包目录,包含应用程序本身。由于应用改程序必须经过签名。所以再运行程序时,是不可以对这个目录进行内容修改的,否则会造成应用无法启动。

(2)Documents目录:这是文档目录。有关应用的所有数据文件应该写入到这个目录下,这个目录用于存储用户数据或者其他应该定期备份的信息。iTunes会同步改应用程序的此文件内容,适合存储一些重要的数据

(3)Libarary目录:库目录,这个目录下面还有两个子目录:Caches 和 Preferences

Preferences 目录:包含应用程序的编号设置文件,存放NSUserDefaults保存的.plist文件。iTunes同步该应用时会同步该文件夹中的内容。

Caches 目录:缓存目录。用于存储应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。ITunes不会同步改文件夹,保存一些不需要备份的数据

(4)tmp目录:临时目录。这个目录用于存放临时文件,保存应用程序再次启动过程中不再需要的信息。iTunes不会同步此文件夹,系统可能在应用没运行时就删除该目录下的文件,所以此目录适合保存应用中的一些临时文件,用完就删除。

下面就是这些文件夹获取路径的方法:

1.获取AppName.app 目录路径:

NSString *path = [[NSBundle mainBundle] bundlePath];

2.获取Documents目录路径的方法:

NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;

3.Library/Caches目录路径方法:

NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;

4.Library/Application Support目录路径方法:

[NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory,   NSUserDomainMask, YES) objectAtIndex:0]

4.tmp目录路径的方法:

NSString *tmpPaht = NSTemporaryDirectory();

5.获取沙盒主目录路径

NSString *homePaht = NSHomeDirectory();

例子:

NSFileManager* fm=[NSFileManager defaultManager];
if(![fm fileExistsAtPath:[self dataFilePath]]){

//下面是对该文件进行制定路径的保存
[fm createDirectoryAtPath:[self dataFilePath] withIntermediateDirectories:YES attributes:nil error:nil];

//取得一个目录下得所有文件名
NSArray *files = [fm subpathsAtPath: [self dataFilePath] ];

//读取某个文件
NSData *data = [fm contentsAtPath:[self dataFilePath]];

//或者
NSData *data = [NSData dataWithContentOfPath:[self dataFilePath]];
}

IOS管理文件和目录

 

1、常见的NSFileManager文件方法

-(NSData *)contentsAtPath:path  //从一个文件读取数据

-(BOOL)createFileAtPath: path contents:(NSData *)data attributes:attr  //向一个文件写入数据

-(BOOL)removeItemAtPath:path error:err  //删除一个文件

-(BOOL)moveItemAtPath:from toPath:to error:err  //重命名或者移动一个文件(to不能是已存在的)

-(BOOL)copyItemAtPath:from toPath:to error:err  //复制文件(to不能是已存在的)

-(BOOL)contentsEqualAtPath:path andPath:path2  //比较两个文件的内容

-(BOOL)fileExistAtPath:path  //测试文件是否存在

-(BOOL)isReadableFileAtPath:path  //测试文件是否存在,并且是否能执行读操作  

-(BOOL)isWriteableFileAtPath:path  //测试文件是否存在,并且是否能执行写操作  

-(NSDictionary *)attributesOfItemAtPath:path error:err  //获取文件的属性  

-(BOOL)setAttributesOfItemAtPath:attr error:err  //更改文件的属性

2.使用目录

-(NSString *)currentDirectoryPath  //获取当前目录

-(BOOL)changeCurrentDirectoryPath:path  //更改当前目录

-(BOOL)copyItemAtPath:from toPath:to error:err  //复制目录结构(to不能是已存在的)

-(BOOL)createDirectoryAtPath:path withIntermediateDirectories:(BOOL)flag attribute:attr  //创建一个新目录

-(BOOL)fileExistAtPath:path isDirectory:(BOOL*)flag  //测试文件是不是目录(flag中储存结果YES/NO)

-(NSArray *)contentsOfDirectoryAtPath:path error:err  //列出目录内容

-(NSDirectoryEnumerator *)enumeratorAtPath:path  //枚举目录的内容

-(BOOL)removeItemAtPath:path error:err  //删除空目录

-(BOOL)moveItemAtPath:from toPath:to error:err   //重命名或移动一个目录(to不能是已存在的)

3、常用路径工具方法

+(NSString *)pathWithComponens:components  //根据components中的元素构造有效路径

-(NSArray *)pathComponents  //析构路径,获得组成此路径的各个部分

-(NSString *)lastPathComponent  //提取路径的最后一个组成部分

-(NSString *)pathExtension  //从路径的最后一个组成部分中提取其扩展名

-(NSString *)stringByAppendingPathComponent:path  //将path添加到现有路径的末尾

-(NSString *)stringByAppendingPathExtension:ext  //将指定的扩展名添加到路径的最后一个组成部分

-(NSString *)stringByDeletingLastPathComponent  //删除路径的最后一个组成部分

-(NSString *)stringByDeletingPathExtension  //从文件的最后一部分删除扩展名

-(NSString *)stringByExpandingTileInPath   //将路径中代字符扩展成用户主目录(~)或指定用户的主目录(~user)

-(NSString *)stringByresolvingSymlinksInPath  //尝试解析路径中的符号链接

-(NSString *)stringByStandardizingPath  //通过尝试解析~、..(父目录符号)、.(当前目录符号)和符号链接来标准化路径

4、常用的路径工具函数

NSString* NSUserName(void)  //返回当前用户的登录名

NSString* NSFullUserName(void)  //返回当前用户的完整用户名

NSString* NSHomeDirectory(void)  //返回当前用户主目录的路径

NSString* NSHomeDirectoryForUser(NSString* user)  //返回用户user的主目录

NSString* NSTemporaryDirectory(void)  //返回可用于创建临时文件的路径目录

5、常用的IOS目录

Documents(NSDocumentDirectory)  //用于写入应用相关数据文件的目录,在ios中写入这里的文件能够与iTunes共享并访问,存储在这里的文件会自动备份到云端

Library/Caches(NSCachesDirectory)  //用于写入应用支持文件的目录,保存应用程序再次启动需要的信息。iTunes不会对这个目录的内容进行备份

tmp(use NSTemporaryDirectory())  //这个目录用于存放临时文件,只程序终止时需要移除这些文件,当应用程序不再需要这些临时文件时,应该将其从这个目录中删除

Library/Preferences  //这个目录包含应用程序的偏好设置文件,使用 NSUserDefault类进行偏好设置文件的创建、读取和修改

iOS中获取各种文件的目录路径的方法的更多相关文章

  1. (转)IOS中获取各种文件的目录路径的方法

    iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory ...

  2. IOS中获取各种文件的目录路径的方法-备

    iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory ...

  3. IOS中获取各个文件的目录路径的方法和NSFileManager类

    转自:http://blog.sina.com.cn/s/blog_5fb39f910101di92.html IOS中获取各种文件的目录路径的方法 iphone沙箱模型的有四个文件夹,分别是什么,永 ...

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

    iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory ...

  5. IOS中获取各种文件的路径介绍及方法

    IOS中获取各种文件的目录路径的方法 技术交流新QQ群:414971585 iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. docum ...

  6. OS模块中获取当前文件的绝对路径的相关方法

    os.path.realpath(__file__) 作用:获取当前执行py脚本的绝对路径(在当前工作目录下的绝对路径) __file__ : 表示当前文件的本身,一般值是当前文件的相对路径 例如: ...

  7. iOS 获取文件的目录路径的几种方法 [转]

    iOS 获取文件的目录路径的几种方法 2 years ago davidzhang iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. d ...

  8. IOS中获取文件路径的方法

    iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory ...

  9. 定时发布任务,在global.asax中获取文件的物理路径的方法

    如果要把一个相对路径或者虚拟路径映射道服务器的物理路径,通常会使用Server.MapPath()函数,比如将根目录下的html目录映射为物理路径:Server.MapPath("html& ...

随机推荐

  1. bzoj 2738 矩阵乘法

    其实这题跟矩阵乘法没有任何卵关系,直接整体二分,用二维树状数组维护(刚刚学会>_<),复杂度好像有点爆炸(好像有十几亿不知道是不是算错了),但我们不能怂啊23333. #include&l ...

  2. BZOJ 1968: [Ahoi2005]COMMON 约数研究

    1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 2032  Solved: 1537[Submit] ...

  3. MySQL二进制安装

    前提 version mysql-5.5 platform centos6.x 添加用户 useradd -M -s /sbin/nologin mysql 安装需要的包 yum -y install ...

  4. web开发——写一个简单的表格导出操作

    一.前台页面: 主要是一个按钮和一个表格,表格有显示数据,按钮负责将表格中的数据选择性地导出.除此外,可以附加一个小窗口和进度条,用于显示下载进度. 1. 按钮:<a href="ja ...

  5. 精简高效的css命名准则

    对于css,为了避免样式冲突,我们总会赋予相当特殊的命名,或是在选择符上添加html标记,或是使用层级.我们为避免在冲突上做文章,就会把代码的命名变得复杂化. 如果css的重用性越高,相比就越高效.如 ...

  6. C#直接赋值和反射赋值(无GC)的性能比较

    using System; using System.Reflection; using System.Diagnostics; using System.Runtime.InteropService ...

  7. 如何合并两个Docker 镜像

    http://www.open-open.com/lib/view/open1437746544709.html 在你的机器上使用docker pull来从Docker Hub下载镜像. docker ...

  8. html5中新增非主体结构元素

    1.header元素 定义HTML文档的页眉,是一种具有引导和导航作用的结构元素 <header> <h1>header元素</h1> <nav> &l ...

  9. PHP如何获取二个日期的相差天数?

    我们经常需要获取二个日期之间相差的天数,方便客户知道距离某个时间段是相差了多少天数,这样的显示结果现在是越来越流行的了.不再像以前那样呆板的显示日期的了.我们这里就分享了二种方法可以获取到二个日期之间 ...

  10. SpringMVC中遇到的Http400 Bad Request 总结

    在搭建SpringMVC环境,在使用中遇到了多次Bad Request的连接,下面来总结下. 1.参数类型不对,如后台实体类的属性为int,但传来的参数为字符串 2.因为我的粗心,本来是要通过Ajax ...