OC 文件基本操作

  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 }
原文地址:https://www.cnblogs.com/oc-bowen/p/5053809.html