注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

码农

用最简单的办法解决问题,用最奇怪的办法创造BUG

 
 
 

日志

 
 

NSFileManager 文件管理器  

2012-06-14 09:46:23|  分类: iphone |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
NSFileManeger
文件管理器提供许多通用的文件操作,用户可以通过使用共享的文件管理对象(NSFileManager *fm = [NSFileManager defaultManager];);ios和mac os x 10.5以后,用户可以创建一个唯一的文件管理器委托对象。
文件管理器可以用来 定位 创建 拷贝 移动 文件和文件夹。获取 文件或文件夹 属性(大小,修改日期,权限),还可以用来改变 文件和文件夹的属性。
文件管理器支持 NSURL 和 NSString 两种方式来定位文件或文件夹。NSURL通常是首选的方式,因为这种方式将路径信息转换成更高效的表示。你也可以从NSURL中获取一个“书签”,一种类似别名的方式提供定位文件或者文件夹的方式。
如果想要移动,拷贝,链接或删除文件或文件夹,你可以使用一个文件管理器的代理来管理这些操作。代理是用来定义这些操作以及出错后怎样处理。mac os x 10.7以后,代理必须符合NSFileManagerDelegate协议。
iOS 5.0 和 mac os x 10.7以后 ,NSFileManager引入了一些新方法,这些方法可以将文件储存至iCloud。用来存储在云端的文件标签和文件夹标签和iCloud中的应该是同步的。这样可以使文件在用户的ios设备和mac设备之间共享。文件或文件夹在一处的更改将发送给其他设备来确定这些更改同步。

关于线程的说明
NSFileManager的共享对象是线程安全的。但如果你使用了代理方式来接收文件操作的消息,需要自己创建一个单实例的文件管理对象来给代理,并使用该对象来完成文件操作,保证线程安全。

常见调用
// 文件管理器
NSFileManager *fm = [NSFileManager defaultManager];
// 文件主路径
NSHomeDirectory();
// 创建路径
- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error
// 创建文件
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)contents attributes:(NSDictionary *)attributes
// 删除文件
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error
// 拷贝文件
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error
// 移动文件
- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error
// 验证文件或文件路径是否存在
- (BOOL)fileExistsAtPath:(NSString *)path
// 验证文件或路径是否存在,指定是否文件路径
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory
// 是否可读
- (BOOL)isReadableFileAtPath:(NSString *)path
// 是否可写
- (BOOL)isWritableFileAtPath:(NSString *)path
// 是否可执行文件
- (BOOL)isExecutableFileAtPath:(NSString *)path
// 是否可删除
- (BOOL)isDeletableFileAtPath:(NSString *)path
// 设置文件或文件夹属性
- (BOOL)setAttributes:(NSDictionary *)attributes ofItemAtPath:(NSString *)path error:(NSError **)error
// 改变当前工作目录路径到指定路径
- (BOOL)changeCurrentDirectoryPath:(NSString *)path

// 文件属性列表
文件所属类型 NSString
NSFileType;
文件大小 NSNumber 如果文件包含资源 fork,返回值不包含资源 fork
NSFileSize;
最后一次修改时间 NSDate
NSFileModificationDate;
文件关联数 NSNumber
NSFileReferenceCount;
文件所在设备标识 NSNumber
NSFileDeviceIdentifier;
文件所属人 NSString
NSFileOwnerAccountName;
文件所属组 NSString
NSFileGroupOwnerAccountName;
Posix权限 NSNumber
NSFilePosixPermissions;
NSFileSystemNumber;
文件系统文件数 NSNumber
NSFileSystemFileNumber;
文件后缀名是否隐藏 NSNumber
NSFileExtensionHidden;
文件分层系统创建者编码 NSNumber
NSFileHFSCreatorCode;
文件分层系统类型编码 NSNumber
NSFileHFSTypeCode;
文件是否可变 NSNumber
NSFileImmutable;
文件只读 NSNumber
NSFileAppendOnly;
文件创建时间 NSDate
NSFileCreationDate;
文件所属人标识 NSNumber
NSFileOwnerAccountID;
文件所属组标识 NSNumber
NSFileGroupOwnerAccountID;
文件正在使用 NSNumber
NSFileBusy;
扩展文件保护级别
NSFileProtectionKey;


文件系统文件类型
NSFileTypeDirectory;
NSFileTypeRegular;
NSFileTypeSymbolicLink;
NSFileTypeSocket;
NSFileTypeCharacterSpecial;
NSFileTypeBlockSpecial;
NSFileTypeUnknown;

扩展的文件保护级别
NSFileProtectionNone;
NSFileProtectionComplete;
NSFileProtectionCompleteUnlessOpen;
NSFileProtectionCompleteUntilFirstUserAuthentication;


  评论这张
 
阅读(2746)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018