设为首页 加入收藏

TOP

iOS开发:数据存储之文件操作(一)
2014-11-24 08:29:43 来源: 作者: 【 】 浏览:2
Tags:iOS 开发 数据 存储 文件 操作

在ios开发中,如果要访问模拟器中app的文件夹,既可以通过程序本身直接去访问,也可以通过命令行去访问。


在命令行下的访问方法为,首先打开命令,在命令行中,敲入以下命令就可以访问到所指定app的目录,命令如下:


cd/Users/ren/Library/Application\Support/iPhone\Simulator/6.0/Applications/805D7CF0-5DBB-4FCD-9922-0D5C460F510E/


对命令行解读:


cd /Users/主机名/Library/ApplicationSupport/iPhone Simulator/SDK版本号/Applications/应用唯一标示ID/


然后,就可以进入本应用的任意一个文件夹。如果要对文件夹进行拷贝、删除操作,这需要root权限。


第二种,是通过应用程序本身去访问自身的文件夹。并通过程序进行文件的创建、删除、写入和读出等操作。


1.访问指定位置的文件夹。


访问Documents文件夹


NSString *docPaths = [paths objectAtIndex:0];


访问Cache文件夹


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


NSString *cachePaths = [paths1 objectAtIndex:0];


访问Library文件夹


NSArray *paths2 =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);


NSString *libraryPaths = [paths2 objectAtIndex:0];


//NSDocumentDirectory常量就是指定查找的目标是Documents文件夹,而NSUuserDomainMask常量指定从应用程序的主目录中搜索,也就是从Application文件夹的相应程序的文件夹开始找
//YES表示希望获取所有找到的目录的完整路径
NSString *documentsDirectory = [paths objectAtIndex:0];
//这句话记住就行,每个应用程序文件夹里面只有唯一一个Documents文件夹,但是NSSearch方法会返回很多个,我们只取第一个即可。(Cache和Library与Documents相同)。


创建与删除:
//创建文件管理器
NSFileManager *fileManager = [NSFileManager defaultManager];
//获取路径
//参数NSDocumentDirectory要获取那种路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];//去处需要的路径


//更改到待操作的目录下
[fileManager changeCurrentDirectoryPath:[documentsDirectorystringByExpandingTildeInPath]];


//创建文件fileName文件名称,contents文件的内容,如果开始没有内容可以设置为nil,attributes文件的属性,初始为nil
[fileManager createFileAtPath:@"fileName" contents:nilattributes:nil];


//删除待删除的文件
[fileManager removeItemAtPath:@"createdNewFile" error:nil];



//写入数据:


//创建文件管理器


NSFileManager *fileManager = [NSFileManagerdefaultManager];


//获取路径


//参数NSDocumentDirectory要获取那种路径


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


NSString *documentsDirectory = [pathsobjectAtIndex:0];//去处需要的路径


NSLog(@"documentsDirecrtory:%@",documentsDirectory);


//更改到待操作的目录下


[fileManager changeCurrentDirectoryPath:[documentsDirectorystringByExpandingTildeInPath]];


//创建文件fileName文件名称,contents文件的内容,如果开始没有内容可以设置为nil,attributes文件的属性,初始为nil


[fileManager createFileAtPath:@"fileone"contents:nil attributes:nil];


NSString *str = [documentsDirectorystringByAppendingPathComponent:@"fileone"];


NSLog(@"str:%@",str);


BOOL isExsit = [fileManagerfileExistsAtPath:str];


if (isExsit) {


NSLog(@"文件存在");


}


else


{


NSLog(@"文件不存在");


}


//获取文件路径


NSString *path = [documentsDirectorystringByAppendingPathComponent:@"fileone"];


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


//待写入的数据


NSString *temp = @"Hello friend";


int data0 = 100000;


float data1 = 23.45f;


//创建数据缓冲


NSMutableData *writer = [[NSMutableDataalloc] init];


//将字符串添加到缓冲中


[writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]];


//将其他数据添加到缓冲中


[writer appendBytes:&data0 length:sizeof(data0)];


[writer appendBytes:&data1 length:sizeof(data1)];


//将缓冲的数据写入到文件中


[writer writeToFile:path atomically:YES];



//读取数据:


int gData0;


float gData1;


NSString *gData2;


NSData *reader = [NSDatadataWithCont

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇iOS开发:数据存储之SQLite数据库.. 下一篇iOS开发:数据存储之plist文件操作

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解c语言指针和 (2025-12-27 01:19:11)
·为什么C标准库没有链 (2025-12-27 01:19:08)
·玩转C语言和数据结构 (2025-12-27 01:19:05)
·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)