前提,用到的东东:
1、文件数据类:NSData类型(二进制)
1)作用:专门用于将数据封装成二进制的类。数据(文本,图片,音频,视频....)  ==> NSData类型的对象
2)编码方式:使用UTF8国际通用编码
     encoding:NSUTF8StringEncoding
3)NSString与NSData相互转换
NSString *contents = @"我是要保存到文件中去的内容,哈哈";
//将NSString转换成NSData类型
NSData *data = [contents dataUsingEncoding:NSUTF8StringEncoding];
//将NSData转换成NSString,
NSString *contents2 = [[NSString alloc]initWithData:data2 encoding:NSUTF8StringEncoding];
 
atomically:原子性
 
2、NSURL类型:
必须以协议头(http://,ftp://,file://)
可以创建目录,不能创建文件
1) 什么是URL
URL  :  统一资源定位符(Uniform Resource Locator)
在互联网上可以唯一的定位一个资源(文件,音乐,图片..)
http://www.tarena.com.cn/index.html
在计算中也可以使用URL来定位一个资源
file:///Users/tarena/Desktop/my.txt
//将字符串转换成NSURL类型
NSURL *url2 = [NSURL URLWithString:Str];
//获取到数据
NSData *htmlData = [NSData dataWithContentsOfURL:url2];
 
2) 和PATH的区别:
         URL必须经访问协议开头(http://, ftp://, file://…), 是NSURL类型的对象
PATH没有协议, 是字符串对象
 
3、NSError类型
用于获取错误信息
    NSError *error = nil;
    NSLog(@"简洁写入文件失败:%@", error.userInfo);
4、文件操作:创建、写入文本、读取文本、移动、复制、删除文件
 
 5、类NSFileManager
获取文件属性: attributesOfItemAtPath,返回字典
 
判断是否存在: fileExistsAtPath
 创建+写入文件:createFileAtPath
读取字:contentsAtPath
 
使用NSString读写文本
写入文件:writeToFile
读取:stringWithContentsOfFile
 
创建文件夹:createDirectoryAtPath
 删除文件:removeItemAtPath
复制:copyItemAtPath
 
NSFileManager *manager = [NSFileManager defaultManager];
    //创建文件
BOOL flage = [manager createFileAtPath:@"/Users/tarena/Desktop/my.txt" contents:nil attributes:nil];
    if (flage) {
        NSLog(@"文件创建成功!");
    }else{
        NSLog(@"文件创建失败!");
    }
    //创建文件的同时给文件写入内容
    NSString *contents = @"我是要保存到文件中去的内容,哈哈";
    //NSString ==> NSData
    NSData *data = [contents dataUsingEncoding:NSUTF8StringEncoding];
    //创建并写入内容
    flage = [manager createFileAtPath:@"/Users/tarena/Desktop/my2.txt" contents:data attributes:nil];
    //字符串的简洁写入文件方法
    NSError *error = nil;
    flage= [contents writeToFile:@"/Users/tarena/Desktop/my3.txt" atomically:YES encoding:NSUTF8StringEncoding error:&error];
    //从文件中读取内容
    NSData *data2 = [manager contentsAtPath:@"/Users/tarena/Desktop/my3.txt"];
    //NSData ==> NSString
    NSString *contents2 = [[NSString alloc]initWithData:data2 encoding:NSUTF8StringEncoding];
    NSLog(@"从文件中读到的内容是:%@", contents2);
    //从文件中读取字符串内容的简洁方法
    NSString *contents3 = [NSString stringWithContentsOfFile:@"/Users/tarena/Desktop/my3.txt" encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"直接从文件中读字符串:%@", contents3);
    //删除文件
    error = nil;
    res = [manager removeItemAtPath:@"/Users/tarena/Desktop/my.txt" error:&error];
    if(!res){
        NSLog(@"删除失败:%@", error.userInfo);
    }
    //判断目录是否存在
    NSString *path = @"/Users/tarena/Desktop/files";
    flage= [[NSFileManager defaultManager]fileExistsAtPath:path];
//拷贝文件,如果目标已经存在,由拷贝失败
    NSString *sourcePath = @"/Users/tarena/Desktop/app.txt";
    NSString *targetPath = @"/Users/tarena/Desktop/app2.txt";
    if(![manager copyItemAtPath:sourcePath toPath:targetPath error:nil]){
        NSLog(@"拷贝失败!");
    }
 
//使用URL来操作文件或目录
    //创建一个目录
    NSURL *url = [NSURL URLWithString:@"file:///Users/tarena/Desktop/urldir"];
    if (![manager createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:nil]){
        NSLog(@"使用URL创建目录失败!");
    }
    //使用path来将一个文件的二进制数据读入到NSData(假设这个文件是图片,或视频等,就不能读成字符串)
    NSData *data = [NSData dataWithContentsOfFile:@"/Users/tarena/Desktop/app.txt"];
    NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"%@", str);
    //使用URL将一个文件的二进制数据读入内存中(使用NSData对象来封装)
    NSString *urlStr = @"http://tmooc.cn/web/library/library.html";
//将字符串转换成NSURL类型
    NSURL *url2 = [NSURL URLWithString:urlStr];
//获取到数据
    NSData *htmlData = [NSData dataWithContentsOfURL:url2];
//将数据转换成NSString类型
    NSString *htmlStr = [[NSString alloc]initWithData:htmlData encoding:NSUTF8StringEncoding];
    NSLog(@"%@", htmlStr);
 
//获取文件属性
NSString *path=[self.documentPath stringByAppendingPathComponent:@"hello.txt"];
NSDictionary *dic=[[NSFileManager defaultManager]attributesOfItemAtPath:path error:nil];
NSLog(@"%@",[dic description]);//输出文件的属性内容
NSUInteger fileSize=[dic[NSFileSize]integerValue];//文件大小是以为字节单位
NSLog(@"文件大小:%lu",(unsigned long)fileSize);

NSFileManager文件管理的更多相关文章

  1. iOS - OC NSFileManager 文件管理

    前言 @interface NSFileManager : NSObject @interface NSFileHandle : NSObject <NSSecureCoding> NSF ...

  2. Objective-C NSFileManager 文件管理总结

    createFileAtPath //创建文件 NSFileManager *fm = [NSFileManager defaultManager]; NSString *strpath = [NSS ...

  3. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  4. Swift\本地文件管理

    转载自:http://www.coloroud.com/2015/06/01/Swift-File-Manager/ 开头 看来Swift这趟浑水是非干不可,既然如此,那索性就来的彻底吧,来一次全方位 ...

  5. iOS开发中常用的单例

    定义:一个类的对象,无论在何时创建.无论创建多少次,创建出来的对象都是同一个对象. 使用场景:当有一些数据需要共享给别的类的时候,就可以把这些数据保存在单例对象中.   关键代码: + (instan ...

  6. 浅谈iOS中的单例模式

    iOS中的单例模式     就我本身理解而言,我认为的单例:单例在整个工程中,就相当于一个全局变量,就是不论在哪里需要用到这个类的实例变量,都可以通过单例方法来取得,而且一旦你创建了一个单例类,不论你 ...

  7. UI基础:DataPersistent.沙盒

    沙盒是系统为每一个应用程序生成的一个特定文件夹,文件夹的名字由一个十六进制数据组成,每一个应用程序的沙盒文件名都是不一样的,是由系统随机生成的. 沙盒主目录: NSString *homePath = ...

  8. IOS开发-视频,音频,录音简单总结

    /***** * 1. 视频播放 * *  @格式:mp4 mov m4v m2v 3gp 3g2 * *  @系统框架使用:#import <MediaPlayer/MediaPlayer.h ...

  9. OC 知识点回顾

    /* 字符串: NSString  不可变字符串  字符串对象的内容不能修改,字符串的指针可以改变 NSMutableString 可变字符串   可以修改字符串对象的内容,继承自NSString , ...

随机推荐

  1. Django学习系列之Form基础

     Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...

  2. javap 可以打印出用于jni调用的java函数的签名信息

    javap可以打印出java的字节码: -c     Prints out disassembled code, i.e., the instructions that comprise the Ja ...

  3. Linux Oracle服务启动&停止脚本与开机自启动

    在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...

  4. 第二百六十九天 how can I 坚持

    什么是明事理,搞不懂啊,好烦. 有点像我妈. 为什么突然就想买房了呢,为什么?年龄到了,考虑的东西就不一样了. 哎,不要想太多,睡觉.

  5. snprintf 返回值

    在平时写代码的过程中,我一个推荐带有n系列的字符串函数,如 strcat ->strncat sprintf->snprintf 我们有类似的一个函数 void dump_kid(std: ...

  6. iOS本地数据存取

    应用沙盒 1)每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 2)应用沙盒的文件系统目录,如下图所示(假设应用的名称 ...

  7. Red5下的room

    http://blog.csdn.net/whycold/article/details/6142475 package com.test; import java.util.ArrayList;im ...

  8. Connection对象连接加密2

    一般情况下,大多数人习惯于将数据库连接写在web.config上里面,理论上讲,将明文存放在该文件里面是安全的,因为web.config文件是不允许被客户端下载,但一旦该文件泄漏出去,哪怕是很短的时间 ...

  9. 整数矩阵CMO 2102回馈(gauss整数解)

    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 本题是CMO(数学 Olympics) 2012 第二题 所以还是很坑的…… ...

  10. DuiLib(二)——控件创建

    上一篇讲了窗口及消息,了解了大体的程序框架.这一篇说的是控件的创建. duilib支持XML配置文件,即根据XML创建窗口及控件,将界面与逻辑分开,便于修改及维护.上一篇的示例中可以看到在消息WM_C ...