1 // 2 // main.m 3 // oc_13 4 // 5 // Created by ma c on 15/12/17. 6 // Copyright (c) 2015年 博文科技. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 #define FILEPATH @"/Users/mac/Desktop/" 11 #define FILEPATH1 @"/Users/mac/Desktop/bowen.txt" 12 13 14 int main(int argc, const char * argv[]) { 15 @autoreleasepool { 16 // insert code here... 17 // NSLog(@"Hello, World!"); 18 19 //NSFileManager 文件管理类(操作文件) 20 //NSFileHandle 文件句柄(光标)类(操作文件内容) 21 22 /* 23 NSFileManager 文件管理类(操作文件) 24 1.创建文件夹/文件 25 2.读取文件 26 3.拷贝文件 27 4.移动文件(重命名文件) 28 5.删除文件 29 6.杂项操作 30 7.文件遍历 31 32 33 NSFileHandle 文件句柄(光标)类(操作文件内容) 34 1.文件写入 35 2.文件读取 36 37 */ 38 //----------NSFileManager 文件管理类(操作文件)---------// 39 40 //单例模式 41 //创建文件 42 NSFileManager *fm = [NSFileManager defaultManager]; 43 NSString *fileName = @"bowen.txt"; 44 NSString *filePath = [FILEPATH stringByAppendingPathComponent:fileName]; 45 NSString *content = @"here is a string"; 46 NSData *fileData = [content dataUsingEncoding:NSUTF8StringEncoding]; 47 48 BOOL flag = [fm createFileAtPath:filePath contents:fileData attributes:nil]; 49 50 if (flag) { 51 NSLog(@"文件创建成功"); 52 } 53 else 54 NSLog(@"文件创建失败"); 55 56 57 //创建文件夹 58 NSFileManager *fm1 = [NSFileManager defaultManager]; 59 60 NSString *directoryName = @"bowen"; 61 NSString *directoryPath = [FILEPATH stringByAppendingPathComponent:directoryName]; 62 63 64 BOOL flag1 = [fm1 createDirectoryAtPath:directoryPath withIntermediateDirectories:YES attributes:nil error:nil]; 65 66 if (flag1) { 67 NSLog(@"文件夹创建成功"); 68 } 69 else 70 NSLog(@"文件夹创建失败"); 71 72 // 读取文件 73 NSFileManager *fm2 = [NSFileManager defaultManager]; 74 75 NSString *fileName1 = @"bowen.txt"; 76 NSString *filePath1 = [FILEPATH stringByAppendingPathComponent:fileName1]; 77 78 NSData *fileData1 = [fm2 contentsAtPath:filePath1]; 79 NSString *fileContents = [[NSString alloc] initWithData:fileData1 encoding:NSUTF8StringEncoding]; 80 NSLog(@"%@",fileContents); 81 82 83 // 移动文件 84 NSFileManager *fm3 = [NSFileManager defaultManager]; 85 86 NSString *oldName = @"bowen.txt"; 87 NSString *oldPath = [FILEPATH stringByAppendingPathComponent:oldName]; 88 NSString *newName = @"bowen/newBowen.txt"; 89 NSString *newPath = [FILEPATH stringByAppendingPathComponent:newName]; 90 91 BOOL flag2 = [fm3 moveItemAtPath:oldPath toPath:newPath error:nil]; 92 93 if (flag2) { 94 NSLog(@"移动成功"); 95 } 96 else 97 NSLog(@"移动失败"); 98 99 100 101 //删除文件 102 NSFileManager *fm5 = [NSFileManager defaultManager]; 103 104 NSString *fileName2 = @"bowen.txt"; 105 NSString *filePath2 = [FILEPATH stringByAppendingPathComponent:fileName2]; 106 107 BOOL flag4 = [fm5 removeItemAtPath:filePath2 error:nil]; 108 if (flag4) { 109 NSLog(@"文件删除成功"); 110 }else 111 NSLog(@"文件删除失败"); 112 113 114 //拷贝文件 115 NSFileManager *fm4 = [NSFileManager defaultManager]; 116 117 NSString *fromName = @"bowen/newBowen.txt"; 118 NSString *fromPath = [FILEPATH stringByAppendingPathComponent:fromName]; 119 NSString *atName = @"bowen.txt"; 120 NSString *atPath =[FILEPATH stringByAppendingPathComponent:atName]; 121 122 BOOL flag3 = [fm4 copyItemAtPath:fromPath toPath:atPath error:nil]; 123 124 if (flag3) { 125 NSLog(@"文件拷贝成功"); 126 }else 127 NSLog(@"文件拷贝失败"); 128 129 130 //杂项操作 131 NSFileManager *fm6 = [NSFileManager defaultManager]; 132 NSString *fileName3 = @"bowen.txt"; 133 NSString *filePath3 = [FILEPATH stringByAppendingPathComponent:fileName3]; 134 135 BOOL flag5 = [fm6 fileExistsAtPath:filePath3]; 136 137 if (flag5) { 138 NSDictionary *infoDic = [fm6 attributesOfItemAtPath:filePath3 error:nil]; 139 NSLog(@"%@",infoDic); 140 NSString *size = [infoDic objectForKey:NSFileSize]; 141 NSLog(@"文件大小:%@",size); 142 } 143 else 144 NSLog(@"文件不存在"); 145 146 //文件遍历(浅遍历,深遍历) 147 148 NSFileManager *fm7 = [NSFileManager defaultManager]; 149 150 NSString *directoryName2 = @"bowen"; 151 NSString *directoryPath2 = [FILEPATH stringByAppendingPathComponent:directoryName2]; 152 //浅遍历 153 NSArray *fileArr = [fm7 contentsOfDirectoryAtPath:directoryPath2 error:nil]; 154 NSLog(@"%@",fileArr); 155 //深遍历 156 NSArray *allFileArr = [fm7 subpathsOfDirectoryAtPath:directoryPath2 error:nil]; 157 NSLog(@"%@",allFileArr); 158 159 160 161 162 //-----------NSFileHandle 文件句柄类(操作文件内容)------------// 163 //文件读取 164 NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:FILEPATH1]; 165 166 167 NSData *fileData2 = [fh readDataOfLength:4]; 168 NSString *dataStr = [[NSString alloc] initWithData:fileData2 encoding:NSUTF8StringEncoding]; 169 NSLog(@"%@",dataStr); 170 171 172 NSData *fileData3 = [fh readDataOfLength:4]; 173 NSString *dataStr1 = [[NSString alloc] initWithData:fileData3 encoding:NSUTF8StringEncoding]; 174 NSLog(@"%@",dataStr1); 175 176 [fh seekToFileOffset:0];//移动光标位置 177 178 NSData *fileData4 = [fh readDataToEndOfFile]; 179 NSString *dataStr2 = [[NSString alloc] initWithData:fileData4 encoding:NSUTF8StringEncoding]; 180 NSLog(@"%@",dataStr2); 181 182 //文件写入 183 NSFileHandle *fh1 =[NSFileHandle fileHandleForWritingAtPath:FILEPATH1]; 184 185 NSString *contents1 = @"Hello Horld"; 186 NSData *contents1Data =[contents1 dataUsingEncoding:NSUTF8StringEncoding]; 187 188 //[fh1 truncateFileAtOffset:0];//只能在写入的时候用-移动光标位置 189 [fh1 writeData:contents1Data]; 190 191 } 192 return 0; 193 194 }