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

其实每个APP的程序都是单独的一个文件夹,每个APP之间相互之间独立,所以它们的文件夹也是独立的,这个文件夹就是沙盒(Sandbox)。沙盒好处,安全;
坏处,程序之间彼此共享数据较为困难。

1)如何找到应用程序的沙盒源文件?

一般沙盒源文件都存放在~/Library/Application Support/iPhone Simulator/版本号/Applications/的文件夹中,但是这个Library(中文名叫资源库)文件夹是隐藏的。所以需要方法才能点击进去:在Finder中按CMD+SHIFT+G,然后再前往的框中输入~/Library,也就是直接前往,而不是通过点击前往。

当然也是可以用终端一直cd进去,注意有的目录名有两个单词中间空格前面要加 \ 转义,如cd ./Library/Application\ Support/iPhone\ Simulator/

后面选择模拟的版本,然后进入Application,里面都是应用程序,当然是用哈希码命名,里面有4个文件:

Documents、Library、tmp和hello.app,存放永久和临时数据的,这就是每个沙盒里面的主要文件。

1、Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。

2、AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。

3、Library 目录:这个目录下有两个子目录:Caches 和 Preferences
Preferences 目录:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.
Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

4、tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

获取这些目录路径的方法:

第一种方式:获取家目录路径的函数:

?


1

NSString
*homeDir = NSHomeDirectory();

第二种方式:获取Documents目录路径的方法:

?


1

2

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

NSString
*docDir = [paths objectAtIndex:0];

第三种方式:获取Caches目录路径的方法:

?


1

2

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

NSString
*cachesDir = [paths objectAtIndex:0];

第四种方式:获取tmp目录路径的方法:

?


1

NSString
*tmpDir = NSTemporaryDirectory();

第五种方式:获取应用程序程序包中资源文件路径的方法:
例如获取程序包中一个图片资源(apple.png)路径的方法:

?


1

2

NSString
*imagePath = [[NSBundle mainBundle] pathForResource:@”apple” ofType:@”png”];

UIImage
*appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath];

代码中的mainBundle类方法用于返回一个代表应用程序包的对象。

iphone沙盒(sandbox)中的几个目录获取方式:

// 获取沙盒主目录路径 

?


1

NSString
*homeDir = NSHomeDirectory();

// 获取Documents目录路径  

?


1

2

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

NSString
*docDir = [paths objectAtIndex:0];

// 获取Caches目录路径  

?


1

2

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

NSString
*cachesDir = [paths objectAtIndex:0];

// 获取tmp目录路径  

?


1

NSString
*tmpDir = NSTemporaryDirectory();

// 获取当前程序包中一个图片资源(apple.png)路径  

?


1

2

NSString
*imagePath = [[NSBundle mainBundle] pathForResource:
@"apple"ofType:@"png"];

UIImage
*appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath];

例子:

?


1

2

NSFileManager*
fm=[NSFileManager defaultManager];

if(![fm
fileExistsAtPath:[self dataFilePath]]){

//下面是对该文件进行制定路径的保存

?


1

[fm
createDirectoryAtPath:[self dataFilePath] withIntermediateDirectories:YES attributes:nil error:nil];

//取得一个目录下得所有文件名

?


1

NSArray
*files = [fm subpathsAtPath: [self dataFilePath] ];

//读取某个文件

?


1

NSData
*data = [fm contentsAtPath:[self dataFilePath]];

//或者

?


1

2

NSData
*data = [NSData dataWithContentOfPath:[self dataFilePath]];

}

ios获取文件路径的方法有多种,下面介绍一种IOS中获取文件路径比较简单方法。

网上的DOCUMNET和“教程”真让人越看越糊涂,还是自己记下吧。

首先把文件(比如本例中的testFile.txt文件)放置在resources分组下,然后代码这样写:

?


1

2

NSString
*filePath = [[NSBundle mainBundle] pathForResource:
@"testFile"ofType:@"txt"];

NSLog(@"data
path: %@"
,
filePath);

输出的日志中你可以看到testFile.txt的路径已经获得。

再举一个例子:连接SQLITE数据库

?


1

2

3

4

5

6

7

8

9

10

NSString
*dataPath = [[NSBundle mainBundle] pathForResource:@
"myData"ofType:@"sqlite"];

if
(sqlite3_open([dataPath UTF8String], &db) != SQLITE_OK)

{

  sqlite3_close(db);

  NSLog(@"数据库打开失败");

}

else

{

  NSLog(@"数据库成功打开");

}

以上内容是IOS获取各种文件目录路径的方法,希望对大家有所帮助。

时间: 2024-07-29 12:54:44

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

ios中获取各种文件的目录路径方法

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

nginx&apache中禁止指定文件或目录访问的方法

[apache配置禁止访问] 1. 禁止访问某些文件/目录 增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库:  代码如下 复制代码 <Files ~ ".inc$"> Order allow,deny Deny from all </Files> 禁止访问某些指定的目录:(可以用 <DirectoryMatch> 来进行正则匹配)  代码如下 复制代码 <Directory ~ "^/var/www

javascript文件中获取当前文件路径详解

1,在jQuery中获取当前JS文件路径 在jQuery中获取当前JS文件的路径比较简单,只需要如下一行代码就搞定. var __FILE__ = $("script").last().attr("src"); 注意,我们一般把这行代码放到文件的开头,让文件加载的时候就立即执行,这样页面中的script元素中,当前文件恰好是最后一个script.我们千万不要把这行代码放到  代码如下 复制代码 $(document).ready(); $(function(){  

从活动目录中获取域管理员权限的6种方法

本文讲的是从活动目录中获取域管理员权限的6种方法,通常,在大多数企业当中,攻击者根本不需要太长的时间,就可以将域中普通用户的权限提升到域管理员的权限.公司运维人员会困惑,"这一切都是怎么发生的?" 一次攻击,往往开始于公司中的一个或多个用户打开了恶意邮件,使得攻击者可以在目标网络中的计算机上执行恶意代码.一旦恶意代码被运行,攻击者就会利用恶意代码对企业内网进行侦查,以便于发现有用的资源进行提权,进行持久控制,当然,他们还有可能进行信息掠夺. 虽然整体的细节以及流程大多不同,但是他们的目

js 获取本地文件及目录的方法(推荐)_javascript技巧

Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼.富有朝气.但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读.写和删除,就象在VB.VC等高级语言中经常做的工作一样.怎么样,你是否需要了解这方面的知识?那就请跟我来,本文将详细描述如何使用Javascript语言进行文件操作. 一.功能实现核心:FileSystemObject 对象 其实,要在Javascript中实现文件操作功能,主要就是依靠FileSystemobject对象.在详

iOS中获取系统相册中的图片实例_IOS

本文介绍了iOS中获取系统相册中的图片,在很多应用中都能用到,可以获取单张图片,也可以同时获取多张图片,废话不多说了,看下面吧. 一.获取单张图片 思路: 1.利用UIImagePickerController可以从系统自带的App(照片\相机)中获得图片 2.设置代理,遵守代理协议 注意这个UIImagePickerController类比较特殊,需要遵守两个代理协议 @interface ViewController () <UIImagePickerControllerDelegate,

js获取上传文件的绝对路径实现方法_javascript技巧

在html中 <input type="file" id="importFile" /> <input type="button" onclick="upload()"/> <script> function upload() { var filename = document.getElementById("importFile").value; // 这时的filen

如何在win8系统中获取删除文件的最高权限?

  在以前的winXP系统和win7 64位旗舰版系统中,咱们默认使用的就是管理员账户登陆,因此咱们在操作Windows系统的时候遇到权限的问题也比较少,但是在进入到win8系统之后,为了更好的保护用户的隐私,Windows系统默认了不再使用管理员账户登陆,因此,咱们在进行一些操作的时候,就会收到诸如权限不足的提示,那么遇到这样的情况咱们要如何处理呢?今天,小编就来具体介绍一下,如何在win8系统中获取删除文件的最高权限? 1.首先,咱们需要返回到win8系统的传统桌面位置,然后在win8系统中

在ios中创建plist文件出现错误

问题描述 在ios中创建plist文件出现错误 我想写一个方法用来创建plist文件,在网上搜了一些代码案例,但是不知道哪出错了.在log中: 2013-03-28 15:33:47.953 ECom[6680:c07] Property list invalid for format: 100 (property lists cannot contain NULL)2013-03-28 15:33:47.954 ECom[6680:c07] An error has occures <ECOM