iOS: iOS的文件系统

沙盒 SandBox: iOS应用可以访问的文件系统(App自己的文件夹). App在自己的沙盒中运作,不能访问其它沙盒.

程序通过NSPathUtility.h中定义的方法来获得目录的名称, 例如: NSHomeDirectory();在iOS中路径Path就是NSString类型(个别返回包含串的数组NSArray, 这是从MAC OS X上移植的结果);

程序通过NSFilemanager类的方法来管理目录和文件(创建, 删除,拷贝,比较,属性,单次读写全部数据);

程序通过NSFileHandler类的方法来操作文件数据(打开文件, 多次文件I/O操作, 关闭文件);

程序可以通过NSData类来缓冲文件的二进制数据;

换言之, 程序通过上述方式操作不在bundle中的文件, 通常是documents目录.

程序束 Bundle: 开发iOS App时创建的Project项目, 包含App开发需要的所有代码,文件和资源, 它们都存储在Bundle中. SandBox是App的文件夹, Bundle是App的开发资源包(在Xcode里是Project目录), 编译后资源存储在安装压缩包(.ipa)里, 安装后把资源储存在沙盒里(位于.app文件夹). 对于操作系统来讲, 每个App就是一个程序束(文件夹),里面包含可执行文件和其它文件资源. Bundle是应用找到资源的一个方式,甚至包括代码中的类.便于实现资源的动态加载和自动加载.

程序通过类库中的NSbundle类来访问程序束(文件夹)中的资源.这是NSFileManager无法操作的.

[附注:]

路径Path: 路径是标识文件所在位置的字符串(NSString); 不包括标识文件名的字符串;

相对路径:相对于当前目录的路径; 不以/开头; eg. "app"

绝对路径:相对于根目录的路径; 以/开头. /标识根目录;eg. "/User/app"

~标识绝对目录到当前目录的缩写.eg. "~app"

在路径名后填加文件名称构成完整的文件名: stringByAppendingPathComponent:fileName 

关于文件, 目录的更多细节参见<iPhone应用程序编程指南-文本和Web>

 

posted on 2012-07-04 11:10  FuniOS  阅读(615)  评论(0编辑  收藏  举报