/*

*  @brief 沙盒下的各种文件

*/

- (void)getPaths

{

/**

*  @brief 获取沙盒的路径

*/

NSString * HomeDirectory = NSHomeDirectory();

NSLog(@"%@",HomeDirectory);

/*返回值是数组的原因:该方法一开始是用于mac-os开发,对PC端来说,可以有多个用户,所以获取时,会获取到所有用户的文件夹路径,但是该方法用于ios开发时,因为移动端只用一个用户,所以获取到的路径也只有一个。*/

/**

*  @brief 获取Documents目录路径  苹果建议将程序创建产生的文件以及应用浏览产生的文件数据保存在该目录下 iTunes备份和恢复的时候会包括此目录

*/

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

NSString * documentDirectory = [paths firstObject];

NSLog(@"%@",documentDirectory);

/**

*  @brief 获取Library目录路径   保存程序的默认设置或其他状态信息.  Library下的Preferences:存储偏好设置。比如:应用是否是第一次启动,保存用户名和密码等。

*/

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

NSString * libraryDirectory = [paths_1 firstObject];

NSLog(@"%@",libraryDirectory);

/**

*  @brief 获取Cache目录路径(Library下的文件)  存放缓存文件,保存应用的持久化数据,用于应用的升级或者应用关闭后的数据保存,不会被itunes同步。

*/

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

NSString * cachePath = [path_2 firstObject];

NSLog(@"%@",cachePath);

/**

*  @brief 获取tmp目录路径  提供一个临时创建的文件,不需要持久化,在应用关闭后,该目录下的数据将删除,页可能系统在程序不运行的时候清楚。

*/

NSString * tmpDirectory = NSTemporaryDirectory();

NSLog(@"%@",tmpDirectory);

}

/*

*  @brief 文件的操作

*/

- (void)fileManager

{

/**

*  @brief 创建

*/

[self createFile];

/**

*  @brief 写入

*/

[self WriteToFile];

/**

*  @brief 读取

*/

[self readFile];

/**

*  @brief 删除

*/

[self deleteFile];

}

- (void)createFile

{

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

NSString * documentsDirectory = [paths firstObject];

NSFileManager * fileManager = [NSFileManager defaultManager];

NSString * testDirectory = [documentsDirectory stringByAppendingPathComponent:@"MyTest"];

/**

*  @brief 创建文件夹

*/

BOOL res = [fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];

if (res) {

/**

*  @brief 创建文件

*/

NSString * testPath = [testDirectory stringByAppendingPathComponent:@"test.text"];

NSLog(@"%@",testPath);

NSString * content = @"我的测试数据";

/**

*

*  @brief 写入数据

*/

BOOL res = [content writeToFile:testPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

if (res) {

NSLog(@"写入数据成功");

}

}

}

- (void)WriteToFile

{

NSFileManager * defaultManager = [NSFileManager defaultManager];

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

NSString * documentsDirectory = [paths firstObject];

NSString * testDirectory = [documentsDirectory stringByAppendingPathComponent:@"MyTest"];

NSString * testPath = [testDirectory stringByAppendingPathComponent:@"test.text"];

NSString * content = @"我的第二次测试";

/**

*  @brief 文件的可写性(isWritableFileAtPath)

*/

if ([defaultManager isWritableFileAtPath:testPath]) {

/**

*  @brief 写入数据

*/

if ([content writeToFile:testPath atomically:NO encoding:NSUTF8StringEncoding error:nil]) {

NSLog(@"写入成功");

}

}

}

- (void)readFile

{

NSFileManager * defaultManager = [NSFileManager defaultManager];

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

NSString * documentsDirectory = [paths firstObject];

NSString * testDirectory = [documentsDirectory stringByAppendingPathComponent:@"MyTest"];

NSString * testPath = [testDirectory stringByAppendingPathComponent:@"test.text"];

/**

*  @brief 查询文件的可读性

*/

if ([defaultManager isReadableFileAtPath:testPath]) {

NSString  * text = [NSString stringWithContentsOfFile:testPath encoding:NSUTF8StringEncoding error:nil];

NSLog(@"%@",text);

}

}

- (void)deleteFile

{

NSFileManager * defaultManager = [NSFileManager defaultManager];

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

NSString * documentsDirectory = [paths firstObject];

NSString * testDirectory = [documentsDirectory stringByAppendingPathComponent:@"MyTest"];

NSLog(@"%@",testDirectory);

/**

*  @brief 查询文件的可执行性(isExecutableFileAtPath)

*/

NSLog(@"%@",[defaultManager isExecutableFileAtPath:testDirectory]?@"YES":@"NO");

/**

*  @brief 文件的可删除性(isDeletableFileAtPath)

*/

if ([defaultManager isDeletableFileAtPath:testDirectory]) {

/**

*  @brief 删除指定路径的文件

*/

[defaultManager removeItemAtPath:testDirectory error:nil];

}

NSLog(@"%@",[defaultManager isExecutableFileAtPath:testDirectory]?@"YES":@"NO");

}

ios文件读取的更多相关文章

  1. ios文件读取(二)

    - (void)viewDidLoad { [super viewDidLoad]; /** *  @brief 获取文件路径 * */ NSString * filePath = [self get ...

  2. ios 文件操作(NSFileManager)

    IOS的沙盒机制,应用只能访问自己应用目录下的文件,iOS不像android,没有SD卡概念,不能直接访问图像.视频等内容. iOS应用产生的内容,如图像.文件.缓存内容等都必须存储在自己的沙盒内. ...

  3. [iOS翻译]《iOS 7 Programming Cookbook》:iOS文件与文件夹管理(上)

    简介: iOS基于OS X,而OSX本身基于Unix操作系统.在iOS里面,操作系统的完全路径结构是不可见的,因为每个APP的数据都存储自身的沙盒里面.沙盒环境实际上听起来像这样:一个只允许当前APP ...

  4. ios 文件操作

    1.常见的NSFileManager文件方法 -(NSData *)contentsAtPath:path //从一个文件读取数据 -(BOOL)createFileAtPath: path cont ...

  5. iOS——文件操作NSFileManager (创建、删除,复制,粘贴)

    iOS——文件操作NSFileManager (创建.删除,复制,粘贴)       iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像android,没有SD卡概念,不能直接访问图像.视 ...

  6. IOS文件操作的两种方式:NSFileManager操作和流操作

    1.常见的NSFileManager文件方法 -(NSData *)contentsAtPath:path //从一个文件读取数据 -(BOOL)createFileAtPath: path cont ...

  7. iOS文件处理类

    iOS文件处理类 这是一个用来简化iOS中关于文件操作的一个类,所有方法都为类方法. Source File.h // // File.h // FileManager // // http://ho ...

  8. java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  9. php xml 文件读取 XMLReader

    php xml 文件读取 <?php /** $xmlString = '<xml> <persons count="10"> <person ...

随机推荐

  1. java下tcp的socket连接案例

    package cn.stat.p4.ipdemo; import java.io.BufferedReader; import java.io.IOException; import java.io ...

  2. 自己写的简单的jQuery分页控件

    因为是内部项目,需要分页控件,网上找了一大堆,给领导一看,都说不行,原因很简单,太复杂,领导就想要个简单点的,类似百度的分页,可是自己也没写过Jquery控件,硬着头皮找了些资料,写了这个分页控件,目 ...

  3. IE6双倍margin间距解决方法

    虽然现在很少有人在用ie6了,但作为前端人员,是不的不面对的问题. 在ie6中,使用float后的元素,在margin—left,这是你会发现距离和你想的不一样,其他的浏览器又是正常的,增大margi ...

  4. QEventLoop 的使用两例

    熟悉的陌生人 Qt 是事件驱动的,所以当你用Qt的时候,几乎时时刻刻和 QEventLoop 打交道.,只是你可能没有意识到: QCoreApplicaton::exec() QApplication ...

  5. linux vmstat使用说明

    FIELD DESCRIPTION FOR VM MODE Procs r: The number of processes waiting for run time. 表示运行队列,就是说多少个进程 ...

  6. Google GFS文件系统深入分析

    Google GFS文件系统深入分析 现在云计算渐成潮流,对大规模数据应用.可伸缩.高容错的分布式文件系统的需求日渐增长.Google根据自身的经验打造的这套针对大量廉价客户机的Google GFS文 ...

  7. 【转】Ubuntu重装,直接进win7,不进linux的解决方案(添加Ubuntu启动菜单)

    原文网址:http://my.oschina.net/u/1377657/blog/281875 本人重装了Ubuntu12.04.4 LTS, 将Ubuntu启动项放在了/boot分区里面,启动的时 ...

  8. linux/unix 段错误捕获【续】

    本文为“在C/C++中捕获段错误,打印出错的具体位置”的续篇,进一步解决涉及动态链接库的情况.   背景知识: ·linux/unix下动态链接库的基本原理 ·/proc/pid/maps文件的基本格 ...

  9. 第32讲 UI组件之 时间日期控件DatePicker和TimePicker

    第32讲 UI组件之 时间日期控件DatePicker和TimePicker 在Android中,时间日期控件相对来说还是比较丰富的.其中, DatePicker用来实现日期输入设置,    Time ...

  10. 弹出框layer的使用封装

    layer弹出框官方网址:http://layer.layui.com/ layer常用方法的封装:layerTool.jsp layer.config({ extend: 'extend/layer ...