NSFileManager 的基本使用方法
本方法已有个人总结,
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *path=@"/Users/tang/Desktop/123";
NSString *pathtext=@"/Users/tang/Desktop/123/123.txt";
//用于获取单例对象,快速创建对象的方法,
//单例对象:在程序运行期间只有一个对象,
NSFileManager *fm=[NSFileManager defaultManager];
//文件是否存在
//BOOL isYes=[fm fileExistsAtPath:path];
BOOL isDictory=NO;
BOOL isYes=[fm fileExistsAtPath:path isDirectory:&isDictory];
//如果存在判断是否是一个目录
if(isYes)
{
NSLog(@"文件存在!");
if(isDictory)
{
NSLog(@"是一个目录!!");
isDictory=NO;
}
isYes=NO;
}
//判断文件权限.可读,可写,是否可删除
isYes=[fm isReadableFileAtPath:path];
[fm isWritableFileAtPath:path];
[fm isDeletableFileAtPath:path];
//获取文件属性的信息
NSDictionary *fdict=[fm attributesOfFileSystemForPath:path error:nil];
NSLog(@"%@",fdict);
NSLog(@"%@",[fdict fileGroupOwnerAccountName]);
//获取指定目录下的文件及子目录
NSArray *arr=[fm subpathsAtPath:path];
NSLog(@"%@",arr);
arr=[fm subpathsOfDirectoryAtPath:path error:nil]; //不用递归的模式进行遍历
NSLog(@"%@",arr);
//获取指定目录下的子目录,不含子目录下的目录
NSArray *current=[fm contentsOfDirectoryAtPath:path error:nil];
NSLog(@"%@",current);
//
NSData* data= [fm contentsAtPath:pathtext];
NSLog(@"%@",data);
//用法深入
//创建 文件/目录
NSString *cuStr=@"/users/tang/desktop";
//第二个参数如果为YES,不存在desktop的情况下也创建desktop,即自动创建路径中缺少的目录
NSDictionary *dir=nil;
BOOL isSucceed=[fm createDirectoryAtPath:cuStr withIntermediateDirectories:YES attributes:dir error:nil];
if(isSucceed)
{
NSLog(@"创建成功");
isSucceed=NO;
}
//创建文件
NSString *content=@"sshhduoolnalsdfoashdfnai";
NSData *da=[content dataUsingEncoding:NSUTF8StringEncoding];
//NSData *da2=[NSData dataWithBytes:<#(const void *)#> length:<#(NSUInteger)#>];
isSucceed=[fm createFileAtPath:cuStr contents:da attributes:nil];
if(isSucceed)
{
NSLog(@"文件创建成功");
isSucceed=NO;
}
//复制文件,复制文件的时候复制到的文件夹下一定要有文件,不会自动创建;
//[fm copyItemAtPath:<#(NSString *)#> toPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>
//[fm copy];
//移动文件
//[fm moveItemAtPath:<#(NSString *)#> toPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>]
//删除文件
//[fm removeItemAtPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>];
// NSString *path=@"/Users/tang/Desktop/123/22/11.txt";
// NSString *pathtext=@"/Users/tang/Desktop/123/223.txt";
// //用于获取单例对象,快速创建对象的方法,
// //单例对象:在程序运行期间只有一个对象,
// NSFileManager *fm=[NSFileManager defaultManager];
// //文件下载:断点续传//两个文件管理的类,一个NSFileManager,另一个:?????????????
// NSString *content=@"sshhduoolnalsdfoashdfnai";
// NSData *da=[content dataUsingEncoding:NSUTF8StringEncoding];
// bool isSucceed=[fm createFileAtPath:pathtext contents:da attributes:nil];
// //[fm copy];不可以用copy,因为NSDileManager没有遵守NSCopy协议
// if(isSucceed)
// {
// NSLog(@"成功");
// [fm copyItemAtPath:pathtext toPath:path error:nil];
// }
}
return 0;
}
NSFileManager 的基本使用方法的更多相关文章
- IOS文件系统及其相关操作(NSFileManager,NSFileHandle)
How do you get the paths to these special sandbox directories? NSArray *NSSearchPathForDirectoriesIn ...
- OBjective-C:文件管理类NSFileManager
文件管理类NSFileManager类:对文件进行创建.复制.重命名.删除等,一般不对文件内容进行操作. NSData类和NSMutableData类:相当于数据缓冲区 NSFileManager是 ...
- iOS文件和目录操作,iOS文件操作,NSFileManager使用文件操作:
NSFileManager常用的文件方法: -(NSData*)contentsAtPath:path 从一个文件中读取数据 -(BOLL)createFileAtPath:path contents ...
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
- iOS--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook等系统服务开发汇总
iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用系统应用.使用系统服务: ...
- iOS开发——高级技术&iCloud服务
iCloud服务 iCloud 是苹果提供的云端服务,用户可以将通讯录.备忘录.邮件.照片.音乐.视频等备份到云服务器并在各个苹果设备间直接进行共享而无需关心数据同步问题,甚至 即使你的设备丢失后在一 ...
- iOS开发系列通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
- IOS文件管理-NSFileMangager-NSdata
Ios下的文件管理, Ios下不像windows 文件系统那样可以访问任何的文件目录,如C盘.D盘什么的.在Ios中每个应用程序只能访问当前程序的目录,也即sandbox(沙盒模型). iOS为每个应 ...
- IOS中调用系统的电话、短信、邮件、浏览功能
iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...
随机推荐
- jenkins集成ansible注意事项Failed to connect to the host via ssh.
在集成jenkins和ansible实现自动化部署时,root用户下执行ansible命令时可以正常运行.由于是通过jenkins用户去执行ansible命令,而jenkins用户却报如下异常: XX ...
- ios7 上 UIActivity 用的image
在ios8 上UIActivityCategoryShare类型的UIActivity的图标支持彩色图片了,但是在ios7上不行,ios8上的 UIActivityCategoryAction类型也不 ...
- 【故障处理】mysql出现大量slave bin日志,将磁盘空间占满
master服务器IO线程 NO 问题描述:造成大量slave bin 日志 大量占用磁盘 排查解决步骤: 1.检查是配置的问题还是mysql数据库本身的故障 2.将master的机器 mysql_ ...
- 【leetcode】Spiral Matrix(middle)
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...
- rsync使用
1)拷贝本地文件.当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式. 如:rsync -a ./test.c /backup 2)使用一个远程 ...
- Android笔记:管理所有活动
以关闭所有活动为例 public class ActivityCollector { public static List<Activity> activities = new Array ...
- poj1988(并查集)
题目链接:http://poj.org/problem?id=1988 题意:有n个箱子,初始时每个箱子单独为一列: 接下来有p行输入,M, x, y 或者 C, x: 对于M,x,y:表示将x箱子所 ...
- hdu1018(数位)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1018 题意:求n!的数位(即n!有多少位): 思路:对于一个数x,它的数位ans=log10(x): ...
- 4.2 set和multiset
使用必须包含头文件set 1)multiset *:定义 如果不给第二个参数,默认less<key>,即用<来进行. 例如: A是一个类的名字,则可以定义一个容器对象如下: mult ...
- RST_n的问题
有一个灰常郁闷的问题... module CLK_Generater( input CLOCK_100, i ...