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 评 ...
随机推荐
- POJ 3322(广搜)
---恢复内容开始--- http://poj.org/problem?id=3322 题意:http://jandan.net/2008/01/24/bloxorz.html就是这个鬼游戏 我也是郁 ...
- zpf 路由功能
2015-4-11 20:51:06 又搞了一天, 解决了一堆bug, 重新规划了类文件夹, 改善自动加载功能 最新的特性就是支持子域名路由了 因为整个框架还在完善当中, 而且里边有好多接口有我自己申 ...
- Java中的try,catch(Exception e),finally及return执行顺序
结论: ①就算之前return,finally也会执行 ②finally的计算结果不影响之前的return值 ③finally的return值一定是最后的返回结果,因此将return放入finally ...
- 【XLL API 函数】 xlFree
用于释放使用 Excel4,Excel4v,Excel12,Excel12v 分配的 XLOPER/XLOPER12 占用的内存资源. xlFree 函数释放辅助内存和重置指针为NULL但不释放XLO ...
- CodeSign error: code signing is required for product type Application in SDK iOS
在真机测试的时候往往会突然出现这样一个错误,code signing is required for product type 'Application' in SDK 'iOS 7.0' ,就是说 ...
- delphi 控件大全(确实很全)
delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.org Tb97 最有名的工具条(ToolBar)控件库,仿Office97,如TDoC ...
- ios 横竖屏通知
屏幕切换时,会发送一个通知.只要注册一个通知: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(do ...
- ios手势
iOS 手势操作:拖动.捏合.旋转.点按.长按.轻扫.自定义 大 中 小 1.UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性. i ...
- ppt动画制作bullets
动画->效果选项->作为一个对象 这样之后,字总是在一段时间后就自己出来,而不是我们点一下再出来,解决方法是对同一段字重复设置,后面那个会默认是点一下,出一张,在把之前的动画删除即可.
- Android -- startActivityForResult-------&&&----setResult
startActivityForResult与startActivity的不同之处 startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivit ...