@fiy-fish
2015-07-19T04:23:52.000000Z
字数 4068
阅读 1670
Objective-c
// main.m// day08-01-文件//// Created by Aaron on 15/7/10.// Copyright (c) 2015年 Aaron. All rights reserved.//#import <Foundation/Foundation.h>//对文件的操作//NSFileManager//对文件内容的操作//NSFileHandle#if 0int main(int argc, const char * argv[]) {@autoreleasepool {NSFileManager *manager = [NSFileManager defaultManager];//查看目录下的内容/*- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error NS_AVAILABLE(10_5, 2_0);返回值是返回目录下所有的文件的相对路径浅遍历----只遍历当前一层目录如果路径错了,会返回nil*/NSError __autoreleasing *e = nil;NSArray *contens = [manager contentsOfDirectoryAtPath:@"/users/Aaron/desktop/file" error:&e];NSLog(@"%@",contens);//深遍历----不管层次有多深,全部遍历出来contens = [manager subpathsOfDirectoryAtPath:@"/users/Aaron/desktop/file" error:&e];NSLog(@"%@",contens);//在桌面上创建一个目录,里面放一些文件,将所有的txt文档都遍历出来NSMutableArray *txts = [NSMutableArray array];for(NSString *obj in contens){if([obj hasSuffix:@".txt"]){[txts addObject:obj];}}NSLog(@"%@",txts);}return 0;}#endif//复制 粘贴 移动 删除 创建#if 0int main(){//创建目录NSFileManager *manager = [NSFileManager defaultManager];NSError __autoreleasing *err = nil;/*- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error NS_AVAILABLE(10_5, 2_0);返回值表示创建成功或者失败注意: 路径需要包含新的文件的名字参数一: 路径参数二: 是否需要自动创建中间层目录参数三: 文件的属性参数四: 错误信息*/BOOL rec = [manager createDirectoryAtPath:@"/users/Aaron/desktop/newFile/test1/test2" withIntermediateDirectories:YES attributes:nil error:&err];// if(rec)// {// NSLog(@"创建目录成功");// }// else// {// NSLog(@"创建目录失败 error: %@",err);// }//创建文件//- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;//参数一: 路径 (包含文件名)//注意: 创建目录,不允许同名,创建文件,同名则会覆盖掉原来的文件//参数二: 文件的内容//参数三:文件属性//NSData 二进制的数据流的类NSString *str = @"xiaoxin";NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];rec = [manager createFileAtPath:@"/users/Aaron/desktop/newFile/file1.txt" contents:data attributes:nil];if(rec){NSLog(@"创建文件成功");}else{NSLog(@"创建文件失败");}}#endif/*练习:扩展NSFileManager实现一个方法,提供一共路径,创建一个未命名的文件实现一个方法,提供一个路径,创建一个未命名的文件夹*/#if 0int main(){//检测文件是否存在NSFileManager *manager = [NSFileManager defaultManager];//检测指定路径的文件是否存在BOOL rec = [manager fileExistsAtPath:@"/users/Aaron/desktop/newFile"];NSLog(@"%@",rec?@"存在":@"不存在");BOOL isDir = NO;rec = [manager fileExistsAtPath:@"/users/Aaron/desktop/newFile" isDirectory:&isDir];NSLog(@"%@",isDir?@"是目录":@"不是目录");}#endif#if 0int main(){//文件属性NSFileManager *manager = [NSFileManager defaultManager];//获取文件属性/*- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error NS_AVAILABLE(10_5, 2_0);*/NSDictionary *dic = [manager attributesOfItemAtPath:@"/users/Aaron/desktop/newFile/file1.txt" error:nil];NSLog(@"%@",dic);//NSFilePosixPermissions 文件可移植权限NSNumber *num = dic[NSFilePosixPermissions];NSLog(@"%@",num);int temp = [num intValue];temp = 0744;NSLog(@"%d",temp);NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithDictionary:dic];[dic1 setObject:@(temp) forKey:NSFilePosixPermissions];[manager setAttributes:dic1 ofItemAtPath:@"/users/Aaron/desktop/newFile/file1.txt" error:nil];}#endif//复制 移动 删除int main(){NSFileManager *manager = [NSFileManager defaultManager];NSError __autoreleasing *err = nil;//注意:路径都要包含新的文件名//这个方法即可以拷贝文件,也可以拷贝目录,拷贝目录是深遍历[manager copyItemAtPath:@"/users/Aaron/desktop/newFile" toPath:@"/users/Aaron/desktop/file/file1111" error:&err];NSLog(@"%@",err);//移动文件或者文件夹到指定路径[manager moveItemAtPath:@"/users/Aaron/desktop/file" toPath:@"/users/Aaron/desktop/newFile/ffff" error:nil];//删除文件或者文件夹//注意:路径不要写错,写错了就找不回来了[manager removeItemAtPath:@"/users/Aaron/desktop/newFile" error:nil];}
/*练习:扩展NSFileManager实现一个方法,提供一共路径,创建一个未命名的文件实现一个方法,提供一个路径,创建一个未命名的文件夹*/#import <Foundation/Foundation.h>@interface NSFileManager (MyManager)- (BOOL)myCreateFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;@end
/*练习:扩展NSFileManager实现一个方法,提供一共路径,创建一个未命名的文件实现一个方法,提供一个路径,创建一个未命名的文件夹*/#import "NSFileManager+MyManager.h"@implementation NSFileManager (MyManager)-(BOOL)myCreateFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr{NSString *newPtah = [NSString stringWithFormat:@"%@/未命名文件",path];return [self createFileAtPath:newPtah contents:data attributes:attr];}@end