一、路径
获取 APP 沙盒目录方式
//1、获取程序的Home目录,在 NSHomeDirectory() 目录下,不能直接创建目录及文件,要在这个目录下的 Documents 目录中才能创建目录及文件
NSString *homeDirectory = NSHomeDirectory();
NSLog(@"path:%@", homeDirectory);
//path:/Users/ios/Library/Application Support/iPhone Simulator/6.1/Applications/BF38C9E3-1A4A-4929-B5F2-3E46E41CC671
// 与2同样可以获取 Documents 目录
NSString* path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
//path:/Users/ios/Library/Application Support/iPhone Simulator/6.1/Applications/BF38C9E3-1A4A-4929-B5F2-3E46E41CC671/Documents
//2、获取Documents目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSLog(@"path:%@", path);
//path:/Users/ios/Library/Application Support/iPhone Simulator/6.1/Applications/BF38C9E3-1A4A-4929-B5F2-3E46E41CC671/Documents
//3、获取Cache目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSLog(@"path:%@", path);
//path:/Users/ios/Library/Application Support/iPhone Simulator/6.1/Applications/BF38C9E3-1A4A-4929-B5F2-3E46E41CC671/Library/Caches
//4、获取Library目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSLog(@"path:%@", path);
//path:/Users/ios/Library/Application Support/iPhone Simulator/6.1/Applications/BF38C9E3-1A4A-4929-B5F2-3E46E41CC671/Library
//5、获取tmp目录
NSString *tmpDir = NSTemporaryDirectory();
NSLog(@"path:%@", tmpDir);
//path:/Users/ios/Library/Application Support/iPhone Simulator/6.1/Applications/BF38C9E3-1A4A-4929-B5F2-3E46E41CC671/tmp/
说明:
<Application_Home>/AppName.app:存放应用程序自身
<Application_Home>/Documents/:存放用户文档和应用数据文件
<Application_Home>/Library/:应用程序规范的顶级目录,下面有一些规范定义的的子目录,当然也可以自定义子目录,用于存放应用的文件,但是不宜存放用户数据文件,和document一样会被itunes同步,但不包括caches子目录
<Application_Home>/Library/Preferences,这里存放程序规范要求的首选项文件
<Application_Home>/Library/Caches,保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存,不会被itunes同步,所以为了减少同步的时间,可以考虑将一些比较大的文件而又不需要备份的文件放到这个目录下
<Application_Home>/tmp/,保存应用数据,但不需要持久化的,在应用关闭后,该目录下的数据将删除,也可能系统在程序不运行的时候做清楚 ,官方文档摘抄:
注:如果APP要使用文档共享,在ios 8.3以后要在 app 配置文件中设置
Application supports iTunes file sharing 为YES
二、文件管理 NSFileManager 类
NSFileManager* fileManager = [NSFileManager defaultManager];
常用函数
createDirectoryAtPath // 创建目录
createFileAtPath // 创建文件【目录要存在,不存在会报错】
removeItemAtPath // 删除文件
fileExistsAtPath // 检查路径或文件是否存在,这个函数重载了一个带 布尔类型的参数,用去返回如果路径或文件存在,是文件还是路径。
contentsAtPath // 读取文件内容
movePath // 移动文件
copyPath // 复制文件
isReadableFileAtPath // 是否可读
isWritableFileAtPath // 是否可写
fileAttributesAtPath // 获取文件属性
changeAttributesAtPath // 改变文件属性
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email : binary_space@126.com
qq : 1035862795
敲门砖: 代码谱写人生
分享到:
相关推荐
"uchardet OC文件获取文件编码.a文件" 提供的是uchardet库的一个Objective-C版本,适用于iOS开发,使得iOS应用也能利用uchardet的功能来识别和处理文件编码。 uchardet库最初由Mozilla开发,它的核心算法基于...
将 zlib.dll 文件复制到客户端的适当目录,以便客户端能够正确处理 SOAP 请求。 ##### 4. Excel Report 模板 - **步骤 4.1**:设置 MSEXCEL 宏以启用宏功能。 - **步骤 4.2**:指定 WSDL URL,通常是 `...
Xcode项目中,需要在Build Settings中将“Compile Sources As”设置为“Objective-C++”,这样所有`.m`文件都会被当作Objective-C++文件处理,从而支持C++语法。 总之,OC与C++的混编提供了灵活性,使开发者能够...
在下载并解压《OC引导-剑客主题》的zip文件后,你需要找到包含主题的文件,这通常是一个`.json`或`.plist`格式的文件。然后,将这个文件复制到OpenCore的`/EFI/OpenCore/Payloads`目录下,并在`config.plist`的`...
在OC中,我们可以使用Foundation框架来处理文件操作,这个框架提供了诸如NSFileManager、NSData、NSString等类,用于文件的读写、数据的序列化与反序列化。 1. 文件读取:在OC中,通常使用`NSData`类配合`...
【压缩包子文件的文件名称列表】: OC 这个列表只有一个文件名"OC",可能是转换器的安装包、可执行文件或者源代码包。通常,这样的文件会包含程序本身、相关的文档、示例代码或者配置文件。为了更深入地理解这个转换...
这些文件通常包括EFI分区内的固件、配置文件、驱动程序以及可能的DSDT(定义系统描述表)或SSDT(补充系统描述表)等,这些都是确保非Apple硬件能够正确识别和处理Mac OS系统所需的关键元素。 在压缩包的文件名称...
这里提到的"JSONToModel"就是一个这样的工具,它可以从JSON文件自动生成对应的OC Model类。 "JSONToModel"的使用步骤大致如下: 1. 安装:你可以通过CocoaPods或Carthage等依赖管理工具来集成"JSONToModel"。在...
在C4D OC渲染过程中,cuDNN能有效提升GPU加速的性能,尤其是在处理复杂的光照、纹理和粒子效果时。当提示缺少cudnn_8_0_4_win时,意味着系统无法找到必要的库文件来充分利用GPU的计算能力,从而影响渲染效率和质量。...
5. **易于集成**:`oc-s3-storage-adapter`简化了前端应用与S3之间的交互,使得开发人员无需深入了解AWS SDK,就能实现文件上传、下载、删除等操作。 适配器的主要功能可能包括: 1. **文件上传**:将用户上传的...
- 在OC项目中添加Swift代码时,首先需要创建一个桥接头文件(通常是`ProjectName-Bridging-Header.h`)。这个文件允许Swift访问OC的公共API。 - 在Xcode中,选择项目设置 -> Build Settings -> Swift Compiler - ...
压缩包子文件的文件名称列表中的"LFCGzipUtility-master"可能是指一个开源项目或库,用于处理GZIP压缩和解压缩。这个项目可能包含了Objective-C的源代码,提供了方便的接口供开发者使用,使得在iOS或macOS应用中集成...
在实际开发中,需要考虑网络请求失败或文件损坏等情况,为此可以添加错误处理代码: ```objective-c [urlSession的数据TaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable...
4. **批量处理**: 能够一次性处理多个文件的功能可以大大提高效率,特别是对大量OC文件进行转换时。 5. **设置选项**: 提供自定义设置,比如转换参数、保留原始格式等,满足不同用户的个性化需求。 6. **安全问题*...
在OC中,我们可以使用`NSFileManager`的`contentsAtPath:options:error:`方法配合`NSData`的`MD5Sum`方法来获取文件的MD5值。 4. **SHA1(Secure Hash Algorithm 1)**:SHA1是另一种哈希函数,与MD5类似,但产生的...
- Swift的错误处理机制与OC不同,OC使用异常(Exception),而Swift使用可选返回值和do-catch语句。在混编时,需考虑两者之间的转换。 11. **内存管理** - Swift使用ARC(Automatic Reference Counting),与OC...
Swift中的`Any`和`AnyObject`在OC中没有直接对应类型,因此需要特别处理。 - Swift的泛型在Objective-C中不可见,所以如果Swift类使用了泛型,那么在Objective-C中将无法利用这些泛型信息。 - Swift的闭包不能直接...
在Cocos2d-x中,游戏引擎的核心部分通常用C++编写,而界面和应用层则常使用OC实现,因为OC更易于处理苹果的API和框架。 **C++调用Objective-C** 在C++中调用Objective-C的方法主要通过桥接头文件(.h)和桥接实现...