文件管理和网络请求-7.28
文件管理
//沙盒的主⽬目录
NSString *homePath = NSHomeDirectory();
//获取沙盒下的Documents⽬目录
NSString *library = [homePath stringByAppendingPathComponent:@“Library"];
//获取沙盒下的Library⽬目录
NSString *library = [homePat stringByAppendingPathComponent:@“Library"];
//获取沙盒下的tmp⽬目录
NSString *tmp = [homePath stringByAppendingPathComponent:@“tmp"];
int main(int argc, const charchar * argv[]) { @autoreleasepool { //演示路径 NSString *path = @"/Users/Apple/file.text"; //1.返回路径的组成部分 NSArray *array = [path pathComponents]; NSLog(@"%@",array); //2.返回路径最后组成部分 NSString *str = [path lastPathComponent]; NSLog(@"%@",str); //3.在原有的路径后面追加子目录 //这种方式需要添加/ [path stringByAppendingString:@"/appFile.text"]; //不需要添加/ [path stringByAppendingPathComponent:@"appFile.text"]; //4.删除最后的组成部分 str = [path stringByDeletingLastPathComponent]; //删除扩展名(.text被删除了) str = [path stringByDeletingPathExtension]; //5.获取扩展名 str = [path pathExtension]; //6.添加扩展名 [path stringByAppendingPathExtension:@".jpg"]; } return 0; }
//NSFileManager管理文件常用方法
//创建⼀一个⽂文件并写⼊入数据 - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr; //从⼀一个⽂文件中读取数据 - (NSData *)contentsAtPath:(NSString *)path; //srcPath路径上的⽂文件移动到 dstPath 路径上, 注意这⾥里的路径是⽂文件路径⽽而不是⺫⽬目录。 - (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error; //srcPath路径上的⽂文件复制到 dstPath 路径上 - (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error; - (BOOL)fileExistsAtPath:(NSString *)path; // 移除⽂文件 - (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
//创建文件夹
NSString *filePaths = [homePath stringByAppendingPathComponent:@"Documents/file"]; NSError *error; //需要传递一个创建失败的指针对象,记录创建失败的信息 BOOL success1 = [manager createDirectoryAtPath:filePaths withIntermediateDirectories:YES attributes:nil error:&error]; if(!success1){ NSLog(@"创建成功"); }else{ NSLog(@"创建失败"); }
//读取文件
//根据路径读取文件内容 NSData *datas = [manager contentsAtPath:filePath]; NSString *s = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"%@",s)
//文件的大小
NSFileManager *fileManager = [NSFileManager defaultManager]; //获得⽂文件的属性字典 NSDictionary *attrDic = [fileManager attributesOfItemAtPath:path error:nil]; //获取⽂文件⼤大⼩小 NSNumber *fileSize = [attrDic objectForKey:NSFileSize]; 
//文件的移除
NSString *targetPath = [homePath stringByAppendingPathComponent:@"Documents/file/file2.text"]; BOOL sucess2 = [manager moveItemAtPath:filePath toPath:targetPath error:nil]; if(sucess2) { NSLog(@"移动成功"); }else{ NSLog(@"移动失败"); } BOOL isExist = [manager fileExistsAtPath:filePath];//判断文件是否存在 if(isExist){ BOOL sucess4 = [manager removeItemAtPath:filePath error:nil]; if(sucess4){ //删除成功 }else{ //删除失败 } }
网络请求:
1、同步连接
同步连接是iOS中网络连接的一种方式,当请求的数据量小时,同步连接是一个很好的选择。UI“冻结”是它的一个缺点。
同步连接步骤:
//新建一个URL
NSURL *url = [NSURL URLWithString:@"http://baidu.com"];
//创建一个请求
NSURLRequest *req=[NSURLRequest requestWithURL:url];
//发起同步连接
NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
//打印字符串信息
NSString * str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"str = %@",str)
2.异步连接
异步连接是iOS最常用的一种网络连接方式。适应传输数据量大,在连接过程中UI不“冻结”。
异步连接步骤:
//初始化一个URL
NSURL *url = [NSURL URLWithString:@"http://baidu.com"];
//创建一个请求
NSURLRequest * req = [NSURLRequest requestWithURL:url];
//发起异步连接
[NSURLConnection connectionWithRequest:request delegate:self]; //其他的事情交给代理方法去完成 NSLog(@"NSURLConnection 完成");