沙盒模式下的文件路径:
-(void)getSystemFilePath{ //沙盒所在的根目录 NSString *homeDirectory = NSHomeDirectory(); NSLog(@"path:%@", homeDirectory); //应用程序路径 NSString*appPath = [[NSBundle mainBundle] resourcePath]; NSLog(@"path:%@", appPath); //document目录 NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentPaths = [docPaths objectAtIndex:0]; NSLog(@"path:%@", documentPaths); //Cache目录 NSArray *cacPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *cachePath = [cacPaths objectAtIndex:0]; NSLog(@"%@", cachePath); //获取Library目录 NSArray *libPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *libraryPath = [libPaths objectAtIndex:0]; NSLog(@"%@", libraryPath); //获取Tmp目录 NSString *tmpDir = NSTemporaryDirectory(); NSLog(@"%@", tmpDir); }
运行结果:
homeDirectory:/Users/baihe appPath:/Users/baihe/Library/Developer/Xcode/DerivedData/FileManage-bsjiooyzykamvnfrvtvuuejgiufb/Build/Products/Debug documentPaths:/Users/baihe/Documents cachePath:/Users/baihe/Library/Caches libraryPath:/Users/baihe/Library tmpDir:/var/folders/gg/cc6n2tms01j48j3l9g6sph100000gp/T/
文件的读取:
#pragma mark NSFileHandler和NSFileManager读取文件 -(void)readToFile{ NSFileManager *fm=[NSFileManager defaultManager]; //读取沙盒文件 NSArray *sorecePath= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *filePath= [sorecePath objectAtIndex:0]; filePath=[filePath stringByAppendingPathComponent:@"text_list22.txt"]; NSLog(@"文件路径%@",filePath); if ([fm fileExistsAtPath:filePath ]) { NSLog(@"读取文件存在"); NSFileHandle *inFile=[NSFileHandle fileHandleForReadingAtPath:filePath]; //偏移量 // NSUInteger len=[[inFile availableData]length]; // // [inFile seekToFileOffset:len/2]; NSData *readData=[inFile readDataToEndOfFile]; NSLog(@"readData=%@",[[NSString alloc]initWithData:readData encoding:NSUTF8StringEncoding]); [inFile closeFile]; [self getSystemFilePath]; }else{ NSLog(@"读取文件不存在"); } }
write文件
-(void)writeToFile{ NSFileManager* fm=[NSFileManager defaultManager];//文件进行的操作以及文件信息的获取 //查找文件 NSArray *directoryPaths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //查询文件 0表示document下的文件 NSString *documentDirectory =[directoryPaths objectAtIndex:0]; //查找的文件名 NSString* fileName =[documentDirectory stringByAppendingPathComponent:@"text_list22.txt"]; NSLog(@"文件路径:%@",fileName); if (![fm fileExistsAtPath:fileName]) { NSLog(@"文件路径不存在:%@",fileName); }else{ BOOL b=[fm createFileAtPath:fileName contents:nil attributes:nil]; if (b) { NSLog(@"文件创建成功"); }else{ NSLog(@"文件创建失败"); } } NSFileHandle *outfile=[NSFileHandle fileHandleForWritingAtPath:fileName];//主要是对文件内容进行读取和写入操作 NSString *buffer=@"object-c"; [ outfile truncateFileAtOffset:0]; //将输出文件的长度设为0 // NSFileHandle *outfile=[NSFileHandle fileHandleForUpdatingAtPath:fileName]; // [outfile seekToEndOfFile];//将节点跳到文件的末尾 // NSString *buffer=@"中文"; [outfile writeData:[buffer dataUsingEncoding:NSUTF8StringEncoding]]; //写入输入 [outfile closeFile]; }
NSFileHandler常用方法:
+ (id)fileHandleForReadingAtPath:(NSString *)path 打开一个文件准备读取 + (id)fileHandleForWritingAtPath:(NSString *)path 打开一个文件准备写入 + (id)fileHandleForUpdatingAtPath:(NSString *)path 打开一个文件准备更新 - (NSData *)availableData; 从设备或通道返回可用的数据 - (NSData *)readDataToEndOfFile; 从当前的节点读取到文件的末尾 - (NSData *)readDataOfLength:(NSUInteger)length; 从当前节点开始读取指定的长度数据 - (void)writeData:(NSData *)data; 写入数据 - (unsigned long long)offsetInFile; 获取当前文件的偏移量 - (void)seekToFileOffset:(unsigned long long)offset; 跳到指定文件的偏移量 - (unsigned long long)seekToEndOfFile; 跳到文件末尾 - (void)truncateFileAtOffset:(unsigned long long)offset; 将文件的长度设为offset字节 - (void)closeFile; 关闭文件
NSFileManage常用方法
-(NSData *)contentsAtPath:path 从path所代表的文件中读取数据 -(BOOL)createFileAtPath:path contents:(BOOL)data attributes:attr 将数据写入文件 -(BOOL)removeFileAtPath:path handler:handler 将path所代表的文件删除 -(BOOL)movePath:from toPath:to handler:handler 移动或者重命名文件,to所代表的文件不能是已经存在的文件 -(BOOL)copyPath:from toPath:to handler:handler 复制文件,to所代表的文件不能是已经存在的文件 -(BOOL)contentsEqualAtPath:path1 andPath:path2 比较path1和path2所代表的文件 -(BOOL)fileExistsAtPath:path 检查path所代表的文件是否存在 -(BOOL)isReadableFileAtPath:path 检查path所代表的文件是否存在、是否可读 -(BOOL)isWritableFileAtPath:path 检查path所代表的文件是否存在、是否可写 -(NSDictionary *)fileAttributesAtPath:path traverseLink:(BOOL)flag 获取path所代表的文件属性 -(BOOL)changeFileAttributes:attr atPath:path 改变文件属性
//使用方法如下:
NSFileManager *fm=[NSFileManager defaultManager]; //读取沙盒文件 NSArray *sorecePath= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *filePath= [sorecePath objectAtIndex:0]; filePath=[filePath stringByAppendingPathComponent:@"text_list22"]; [fm removeItemAtPath:filePath error:nil];//移除文件. [fm createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];//创建文件夹 [fm createFileAtPath:[filePath stringByAppendingPathComponent:@"text_list22.txt"] contents:nil attributes:nil];//创建文件
相关推荐
沙盒模式软件 防范病毒
区块链作为金融科技中的一项关键技术,在全球范围内越来越受到重视,因此关于区块链技术的监管沙盒模式研究具有很强的现实意义和价值。 监管沙盒的概念起源于英国金融行为监管局(FCA),它的基本思想是在一个虚拟...
标题与描述中的“1433之黑吃黑杀手锏——沙盒模式”涉及的是网络安全领域内一个较为专业且敏感的话题,即通过SQL Server数据库的特定功能进行恶意操作,利用所谓的“沙盒模式”(SandBox Mode)进行系统权限提升或...
标题中的“判题沙盒”是指在线判题系统(Online Judge,简称OJ)中的一种核心技术,它在OJ系统和沙盒系统之间起到桥梁作用。判题沙盒的主要任务是管理和控制执行用户提交的代码,确保它们在安全的环境中运行,并对...
1.每个应用程序都有自己的存储空间,沙盒目录下面有三个文件夹:Documents、Library 和 tmp。 2.应用程序不能翻过自己的围墙去访问别的存储空间的内容,所有的非代码文件都要保存在沙盒目录下。 3.应用程序请求的...
课件可能包括详细的系统架构讲解、操作指南、案例研究和最佳实践分享,帮助用户了解如何有效地部署和使用DCSS安全沙盒系统,提升安全防护能力。 7. 安全沙盒系统部署: 部署过程通常涉及系统规划、硬件配置、软件...
为此,许多国家和地区借鉴了英国的“监管沙盒”制度,以期在模拟真实市场环境的“安全区域”内,测试创新的技术产品、服务与商业模式,并对测试结果进行监控与评估,以判断是否允许其进入市场。 区块链技术虽然提供...
Swift中的`NSCache`和沙盒中的磁盘缓存是两种常用的缓存策略,它们能够有效地提升用户体验,减少网络请求,降低服务器压力。本教程将深入探讨这两种缓存机制的使用,并提供一个包含实例代码的Demo下载。 ### 一、...
沙盒技术在IT行业中扮演着重要的角色,尤其是在软件安全、应用程序开发和系统测试等领域。它是一种隔离技术,允许代码在受控环境中运行,而不会对主系统或用户数据造成潜在危害。下面我们将深入探讨沙盒的基本概念、...
**沙盒机制**是iOS操作系统中的一项重要安全特性,它确保每个应用程序都运行在一个独立且受限的环境中,以此来保护用户数据的安全和隐私。简单来说,沙盒机制为每一个iOS应用程序创建了一个隔离的“沙盒”,应用程序...
`NSFileManager`是Objective-C中用于文件系统操作的主要类,它提供了多种方法来管理沙盒中的文件和目录。 一、`NSFileManager`基础 `NSFileManager`是一个系统服务类,通过它我们可以进行文件的创建、删除、移动、...
用ASI下载网络视频到存本地沙盒 用自定义的AVPlayer播放 网路视频和本地沙盒视频 清除沙盒里的下载视频 下载进度显示 其实 AVPlayer可以放在cell上的AVPlayerLayer图层上(类似网易视听效果)没时间写了。...
安装过程中,Sandboxie会集成到浏览器和其他可执行文件中,使得它们默认在沙盒环境中启动。 在使用Sandboxie时,用户可以设置特定的应用程序运行在沙盒内。例如,对于网络浏览器,开启Sandboxie后,所有的网页浏览...
沙盒U盘为您提供了一个新的解决思路!给出差人员或者回家办公人员发一个U盘,让员工找到任何一个电脑上,插入U盘就可以办公了,沙盒U盘是一个完整的办公环境,可以安全的使用办公数据,也能通过U盘可以接入公司,...
iOS沙盒机制是苹果公司为了增强iOS设备安全性和提升用户体验而设计的一个系统级功能。它为每个应用提供了一个独立的文件系统环境,这种机制被广泛应用于iOS平台的软件开发中。沙盒限制了应用只能访问其特定的文件...
Swift编程在iOS应用开发中扮演着至关重要的角色,而iOS应用的运行环境特有的一种机制——沙盒模型,是理解应用程序行为和数据管理的关键。在这个视频教程中,我们将深入探讨沙盒模型及其在Swift编程中的实际应用。 ...
每个应用都有自己的沙盒,且不能访问其他应用的沙盒,这确保了应用间的数据隔离和安全性。本资源提供了一个沙盒操作的Demo,方便开发者快速理解和使用。 `BWmanagement` 是一个Objective-C编写的类,它可能封装了...
在iOS应用开发中,"沙盒"(Sandbox)是一个重要的概念,它是每个应用程序的专属运行环境,确保了不同应用之间的数据隔离和安全性。每个iOS应用都有自己的沙盒目录,包含若干子目录,用于存储应用的数据、缓存、文档...
当你在Swift工程中遇到无法将文件复制到沙盒的问题,而同样的操作在Objective-C中却能成功,这通常涉及到文件管理和权限控制的不同处理方式。Swift与Objective-C虽然在语法上有诸多相似之处,但在某些API的使用上...