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 评 ...
随机推荐
- 虚函数列表: 取出方法 // 虚函数工作原理和(虚)继承类的内存占用大小计算 32位机器上 sizeof(void *) // 4byte
#include <iostream> using namespace std; class A { public: A(){} virtual void geta(){ cout < ...
- Unity3d 残影效果(狂拽炫酷叼炸天)
效果图,真的很叼啊 我根据别人的改进了一版,支持MeshFilter上的Mesh(需要确保Mesh的Read/Write是开启的否则不能正常工作) 非常感谢原作者给提供思路.http://blog.c ...
- Unity3d 保存和使用地形高度
TerrainHeightProcesser 地形高度存储工具 TerrainHeightData 地形高度数据 // class TerrainHeightProcesser using Unity ...
- ios block 导致的循环引用
[[NSNotificationCenter defaultCenter] addObserverForName:@"UIWindowDidRotateNotification" ...
- java web 学习 --第三天(Java三级考试)
第二天的学习内容这里:http://www.cnblogs.com/tobecrazy/p/3446646.html Jsp中的动作标签 <jsp:include> 实现动态包含,在一个文 ...
- ACM/ICPC 之 DFS范例(ZOJ2412-ZOJ1008)
通过几道例题简单阐述一下DFS的相关题型 ZOJ2412-Farm Irrigation 直观的DFS题型,稍加变化,记录好四个方向上的通路就能够做出来 题目和接水管类似,问最少要灌溉几次,即求解最少 ...
- MongoDB 3.0 用户创建
摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...
- Divide and conquer:Moo University - Financial Aid(POJ 2010)
Moo University - Financial Aid 其实是老题了http://www.cnblogs.com/Philip-Tell-Truth/p/4926008.html 这一次我们换二 ...
- eclipse修改jdk后版本冲突问题
将安装的jdk1.8改为1.7之后出现了很淡疼的问题 修改工程下.setting/ org.eclipse.jdt.core.prefs eclipse.preferences.version=1or ...
- 51nod 1099 任务执行顺序 (贪心算法)
题目:传送门. 题意:中文题. 题解:r[i]-o[i]值大的先进行.反证法:如果大的后进行,会导致空间增大,所以一定大的是先进行. #include <iostream> #includ ...