A. 目录管理
        NSFileManager*manager = [NSFileManagerdefaultManager];//单例模式

         // 1.获取文件属性
NSString *path = @"/Users/hellovoidworld/desktop/oc/test20141121.txt";
NSFileManager *manager = [NSFileManagerdefaultManager]; // 单例模式
NSDictionary *attrDic = [manager attributesOfItemAtPath:path error:nil];
NSLog(@"attrDic: %@", attrDic); // 2.获得目录下的文件与子文件目录列表
NSString *dirPath = @"/Users/hellovoidworld/desktop/oc"; // 只能获取到第一级目录的文件和文件夹(名字)
NSArray *subDirArr = [manager contentsOfDirectoryAtPath:dirPath error:nil];
NSLog(@"subDirArr: %@", subDirArr); // 包含所有文件、子目录(名字)
NSArray *subPath = [manager subpathsAtPath:dirPath];
NSLog(@"subPath: %@", subPath); // 3.管理目录
// 创建目录
[manager createDirectoryAtPath:@"/Users/hellovoidworld/desktop/oc/newFolder"withIntermediateDirectories:NOattributes:nilerror:nil];
//withIntermediateDirectories 参数表示要不要创建不存在的所有目录,NO表示只能创建一级目录 // 移动目录
[manager moveItemAtPath:@"/Users/hellovoidworld/desktop/oc/newFolder/existedFolder"toPath:@"/Users/hellovoidworld/desktop/oc/newFolder/movedFolder"error:&error];
// existedFolder会被剪切变成movedFolder,移动到指定位置 // 删除目录
[manager removeItemAtPath:@"/Users/hellovoidworld/desktop/oc/newFolder/deletingFolder"error:nil]; // 拷贝文件
[manager copyItemAtPath:@"/Users/hellovoidworld/desktop/oc/newFolder/copyingFolder"toPath:@"/Users/hellovoidworld/desktop/oc/newFolder/copiedFolder"error:nil];
 
B.文件管理

 NSFileManager *fileManager = [NSFileManager defaultManager];

 //        // 1.获得文件
NSString *path = @"/Users/hellovoidworld/desktop/oc/M2.jpg";
NSData *data = [NSData dataWithContentsOfFile:path]; // 提取数据
NSLog(@"%ld", data.length); NSString *path2 = @"/Users/hellovoidworld/desktop/oc/M2Copy.jpg";
[fileManager createFileAtPath:path2 contents:data attributes:nil]; // 写入数据 // 2.移动文件,相当于剪切操作
NSString *fromPath = @"/Users/hellovoidworld/desktop/oc/M2Copy.jpg";
NSString *toPath = @"/Users/hellovoidworld/desktop/oc/newFolder/M2.jpg";
[fileManager moveItemAtPath:fromPath toPath:toPath error:nil]; // 3.删除文件
[fileManager removeItemAtPath:@"/Users/hellovoidworld/desktop/oc/newFolder/M2.jpg" error:nil];
 
C.NSData处理数据

 // NSData是一个不可变长度的Data类型,可以一次性加载文件内容
NSData *data = [NSData dataWithContentsOfFile:@"/Users/hellovoidworld/desktop/oc/newFolder/test.txt"];
NSLog(@"data length = %ld", data.length); // 利用NSData写入文件数据
[data writeToFile:@"/Users/hellovoidworld/desktop/oc/newFolder/test2.txt" atomically:YES]; // NSMutableData
NSMutableData *muData = [[NSMutableData alloc] init]; NSString *str1 = @"我要好好学习!";
NSString *str2 = @"天天向上!";
NSString *str3 = @"今天休息!"; NSDate *data1 = [str1 dataUsingEncoding:NSUTF8StringEncoding];
NSData *data2 = [str2 dataUsingEncoding:NSUTF8StringEncoding];
NSData *data3 = [str3 dataUsingEncoding:NSUTF8StringEncoding]; [muData appendData:data1];
[muData appendData:data2];
[muData appendData:data3]; NSString *muPath = @"/Users/hellovoidworld/desktop/oc/newFolder/mu.txt";
[muData writeToFile:muPath atomically:YES];

[OC Foundation框架 - 23] 文件管理的更多相关文章

  1. iOS - OC Foundation 框架

    前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...

  2. OC Foundation框架—集合

    Foundation框架—集合 一.NSArray和NSMutableArray (一)NSArray不可变数组 (1)NSArray的基本介绍 NSArray是OC中使用的数组,是面向对象的,以面向 ...

  3. OC Foundation框架—结构体

    一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...

  4. OC Foundation框架—字符串

    一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:OC不可变数组 NSMutableA ...

  5. [OC Foundation框架 - 20] 统计代码行数

    注意: 1.变量名和函数名不要混淆调用 2.不要对文件夹进行文件的操作,没有权限 3.递归调用注意初始化变量   // // main.m // CodeLineCount // // Created ...

  6. OC — (Foundation框架-NSDate)

    NSDate:是OC中处理日期时间的一个类,可以用来表示时间 获取当前的时间 NSDate *d = [NSDate date]; 创建日期时间对象 NSLog输出是当前时间 格林时间 格式化显示时间 ...

  7. [OC Foundation框架 - 13] NSValue

    NSNumber能够包装基本数据类型称为OC对象,是因为继承了NSValue 包装结构体成OC对象 1.自带结构体 void value() { CGPoint point = CGPointMake ...

  8. [OC Foundation框架 - 12] NSNumber

    1.概念 NSArray,NSDictionary只能放OC对象,不能放入基本数据类型 必须使用包装类NSNumber,把基本数据类型包装成OC对象 不支持自动包装解包   void number() ...

  9. [OC Foundation框架 - 9] NSMutableArray

    可变的NSArray,可以随意添加OC对象   1.创建 void arrayCreate() { NSMutableArray *array = [NSMutableArray arrayWithO ...

随机推荐

  1. linux 模拟延时和丢包

    这是 RHCA 中的一个 BDP 的测试,这也是公司很常用的一种延时和丢包的模拟,现在分享给大家. 我们做的应用软件,还有测试 TCP/UDP  对比,测试 BDP 对 TCP/IP 的影响时,我们都 ...

  2. 【零基础学习iOS开发】【02-C语言】09-流程控制

    前言 1.默认的运行流程 默认情况下,程序的运行流程是这样的:运行程序后,系统会按书写顺序执行程序中的每一行代码.比如下面的程序 1 #include <stdio.h> 2 3 int ...

  3. MyBatis之传入参数parameterType

    在MyBatis的select.insert.update.delete这些元素中都提到了parameterType这个属性.MyBatis现在可以使用的parameterType有基本数据类型和Ja ...

  4. linux配置防火墙详细步骤(iptables命令使用方法)

    通过本教程操作,请确认您能使用linux本机.如果您使用的是ssh远程,而又不能直接操作本机,那么建议您慎重,慎重,再慎重! 通过iptables我们可以为我们的Linux服务器配置有动态的防火墙,能 ...

  5. SPRING IN ACTION 第4版笔记-第九章Securing web applications-002-把用户数据存在memory里(AuthenticationManagerBuilder、 UserDetailsManagerConfigurer.UserDetailsBuilder)

    Spring Security is extremely flexible and is capable of authenticating users against virtually any d ...

  6. Android 获取TextView 显示的字符串宽度

    工作上有业务需要判断textview是否换行,我的做法是判断textview要显示的字符串的宽度是否超过我设定的宽度,若超过则会执行换行. 项目中的其他地方也有这样的需求,故直接使用了那一块的代码.如 ...

  7. Python生成器与yield

    列表推导与生成器表达式 当我们创建了一个列表的时候,就创建了一个可以迭代的对象: >>> squares=[n*n for n in range(3)] >>> f ...

  8. nginx + tomcat

    http://blog.csdn.net/sun305355024sun/article/details/8620996

  9. VS2005工程增加SDK

    客户最近发过来一个VS2005的工程,此工程是基于Pocket PC 2003(ARMV4),需要改为我们WINCE6.0系统对应的SDK,下面具体说明如何添加新的SDK. 选择configurati ...

  10. iframe控件

    function goTo(url) { document.getElementById("iframeid").src = url; //获得要显示的页面,当点击时就会在ifra ...