NSFileManager 主要用于文件
NSFileHandle 主要用于文件内容
在终端输入UNIX命令 cd 切换目录 touch 创建文件 mkdir 创建目录 clear 清屏 ls 查看当前目录下的所有文件 ls -l 查看当前目录下所有文件的属性(只读、只写、可读可写)
更改一个文件的属性: chmod 777 文件名.文件类型 (最大权限)
NSFileManager
创建文件(有的话可以不用创建) 关键字:createFileAtPath:
[fileManager createFileAtPath:<#(NSString *)#> contents:<#(NSData *)#> attributes:<#(NSDictionary *)#>]
第一个参数是创建文件的路径地址
第二个参数是文件内容的名字
第三个参数是nil
创建目录 关键字:createDirectoryAtPath:
[fileManager createDirectoryAtPath:<#(NSString *)#> withIntermediateDirectories:<#(BOOL)#> attributes:<#(NSDictionary *)#> error:<#(NSError *__autoreleasing *)#>]
第一个参数是创建目录的路径地址
第二个参数是BOOL类型的 YES或者NO
第三个参数是nil
第四个参数是报警或者警告 不需要的话写nil
拷贝文件 关键字:copyltemAtPath:
[fileManager copyItemAtPath:<#(NSString *)#> toPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>]
第一个参数是被拷贝文件的路径地址
第二个参数是要拷贝到哪个位置的路径地址
第三个参数是报警或者警告 不需要的话写nil
移动文件 关键字: moveItemAtPath:
[fileManager moveItemAtPath:<#(NSString *)#> toPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>
第一个参数是被移动文件的路径地址
第二个参数是要移动到哪个位置的路径地址
第三个参数是报警或者警告 不需要的话写nil
删除文件 关键字:
[fileManager removeItemAtPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>]
第一个参数写要被删除的文件的路径地址
第二个参数写报警或者警告 不需要的话写nil
NSFileHandle
1.创建文件(有可以不创建)
2. 读或者写或者更新文件 NSFileHandle *fileHandle = nil;
fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:@"/Users/feifanchengxuyuan/Desktop/源文件2.txt"]; 更新关键字:fileHandleForUpdatingAtPath: 读的关键字:[NSFileHandle fileHandleForReadingAtPath] 写的关键字:[NSFileHandle fileHandleForWritingAtPath]
3.将光标移动到文件末尾 [fileHandle seekToEndOfFile]; 关键字:seekToEndOfFile
4.写入文件内容编辑
5.转为数据流 NSData *appendData=[name dataUsingEncoding:NSUTF8StringEncoding]; 关键字 dataUsingEncoding: NSUTF8StringEncoding
6.写入文件
7.关闭文件 [fileHandle closeFile] 关键字:closeFile
//取出文件路径的组成部分
NSLog("%",[stringPath pathComponents]);
//取出文件路径的最后一个组成部分
NSLog("%",[stringPath lastPathComponent]);
//给文件路径追加一部分路径
NSLog("%",[stringPath stringByAppendingPathComponent:"te.text"]);
"listFlie";
//-----------------------文件管理
//创建一个文件管理 fileManager
NSFileManager *fileManager = [NSFileManager defaultManager];
//创建文件内容 NSString类型
NSString *fileString =
//将字符串类型转换为NSData类型 编码格式为NSUTF8
NSData *fileData = [fileString dataUsingEncoding:NSUTF8StringEncoding];
//创建文件 方法createFileAtPath 返回BOOL类型 用if判断
if ([fileManager createFileAtPath:[stringPath stringByAppendingPathComponent:"list.text"] contents:fileData attributes:nil]) {
NSLog("文件创建成功");
}
//读取文件 contentsAtPath: 返回NSData类型
NSData *contentData = [fileManager contentsAtPath:[stringPath stringByAppendingPathComponent:"list.text"]];
"/Users/a11/desktop/test.txt" error:nil];
//将NSData类型转转换为NSString类型
NSString *contentString = [[NSString alloc]initWithData:contentData encoding:NSUTF8StringEncoding];
//读取文件内容
NSLog("读取文件内容 :%",contentString);
//复制文件
[fileManager copyItemAtPath:[stringPath stringByAppendingPathComponent:"list.text"] toPath: "/Users/a11/desktop/test.txt" error:nil];
//移动文件
[fileManager moveItemAtPath:[stringPath stringByAppendingPathComponent:"list.text"] toPath:"/Users/a11/desktop/test.txt" error:nil];
//删除文件
[fileManager removeItemAtPath:
//创建文件目录 也就是创建文件夹
for ([fileManager createDirectoryAtPath:[stringPath stringByAppendingPathComponent:@"newFile.text"] withIntermediateDirectories:YES attributes:nil error:nil]) {
NSLog("文件目录创建成功");
"newFile.text"] error:nil];
}
//读取文件目录的内容
[fileManager contentsOfDirectoryAtPath:[stringPath stringByAppendingPathComponent:
//——————————NSFileHandle-------
//创建一个NSFileHandle
NSFileHandle *fileHandle = nil;
//指定要操作文件的路径 读 写 更新
fileHandle=[NSFileHandle fileHandleForWritingAtPath :"/Users/a11/Desktop/we.txt"];
"cxy";
//指定光标在文件内容末尾
[fileHandle seekToEndOfFile];
//创建需要修改的内容
NSString *appendString =
//转换成数据流格式
NSData *appendData = [appendString dataUsingEncoding:NSUTF8StringEncoding];
//写入到文件中
[fileHandle writeData:appendData];
//关闭文件
[fileHandle closeFile];
//
// main.m
// fileTest
//
// Created by 非凡 程序员 on 15/11/9.
// Copyright (c) 2015年 非凡 程序员. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
//在oc里面对文件路径操作需要NSString
NSString *homePath = NSHomeDirectory();
NSLog(@"%@",homePath);
NSString *desktopPath = @"/Users/feifanchengxuyuan1/Desktop";
NSArray *arrayCom = [desktopPath pathComponents];
NSLog(@"%@",arrayCom);
[desktopPath lastPathComponent];
NSLog(@"追加路径:%@", [desktopPath stringByAppendingPathComponent:@"test.txt"]);
//文件管理
NSFileManager *fileManger = [NSFileManager defaultManager];
NSString *appendCon = @"alice\n";
NSData *appendData = [appendCon dataUsingEncoding:NSUTF8StringEncoding];
if ([fileManger createFileAtPath:[desktopPath stringByAppendingPathComponent:@"createFile.txt"] contents:appendData attributes:nil]) {
NSLog(@"文件创建成功!");
}
NSData *contentData = [fileManger contentsAtPath:[desktopPath stringByAppendingPathComponent:@"createFile.txt"]];
// NSLog(@"===%@",contentData);
NSString *contentStr = [[NSString alloc]initWithData:contentData encoding:NSUTF8StringEncoding];
NSLog(@"===%@",contentStr);
//复制文件
NSString *copyPath = @"/Users/feifanchengxuyuan1/Desktop/file/createFile.txt";
[fileManger copyItemAtPath:[desktopPath stringByAppendingPathComponent:@"createFile.txt"] toPath:copyPath error:nil];
//删除文件
[fileManger removeItemAtPath:copyPath error:nil];
//创建目录
if( [fileManger createDirectoryAtPath:@"/Users/feifanchengxuyuan1/Desktop2/fileTest" withIntermediateDirectories:NO attributes:nil error:nil]){
NSLog(@"目录创建成功");
}
else{
NSLog(@"目录创建失败");
}
NSLog(@"%@", [fileManger contentsOfDirectoryAtPath:desktopPath error:nil]);
//深度遍历目录路径
// NSLog(@"%@", [fileManger subpathsOfDirectoryAtPath:desktopPath error:nil]);
NSFileHandle *filehandleI = nil;
[NSFileHandle fileHandleForReadingAtPath:[desktopPath stringByAppendingPathComponent:@"createFile.txt"]];
// NSFileHandle *fileHandle = [[NSFileHandle alloc]init];
// filehandleI = [NSFileHandle fileHandleForUpdatingAtPath:[desktopPath stringByAppendingPathComponent:@"createFile.txt"]];
[filehandleI seekToEndOfFile];
NSString *appendContent = @"hilary\n";
NSData *appeddData = [appendContent dataUsingEncoding:NSUTF8StringEncoding];
[filehandleI writeData:appeddData];
[filehandleI closeFile];
}
return 0;
}
//
// main.m
// 文件管理练习1
//
// Created by 非凡程序员 on 15/11/9.
// Copyright (c) 2015年 Querida. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *homePath = NSHomeDirectory();
NSLog(@"%@",homePath);
NSString *addCont = [homePath stringByAppendingPathComponent:@"Desktop/崔晓宇"];
NSLog(@"%@",addCont);
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDate *date =[NSDate date];
NSLog(@"%@",date);
NSDateFormatter *formatter =[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy年MM月dd日 hh点mm点ss秒\n"];
NSString *abc =[formatter stringFromDate:date];
NSData *qwe =[abc dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@",[homePath stringByAppendingPathComponent:addCont]);
if ([fileManager createFileAtPath:[homePath stringByAppendingPathComponent:@"Desktop/源文件.txt"] contents:qwe attributes:nil]) {
NSLog(@" 文件创建成功!");
}
else{
NSLog(@" 文件创建失败!");
}
if ([fileManager createDirectoryAtPath:[homePath stringByAppendingPathComponent:@"Desktop/文件管理"] withIntermediateDirectories:YES attributes:nil error:nil]) {
NSLog(@" 目录创建成功!");
}
else {
NSLog(@" 目录创建失败!");
}
// NSFileHandle *fileHandle =nil;
if([fileManager copyItemAtPath:[homePath stringByAppendingPathComponent:@"Desktop/源文件.txt"] toPath:@"/Users/feifanchengxuyuan/Desktop/文件管理/源文件1.txt"error:nil]){
NSLog(@" 文件拷贝成功!");
}
else {
NSLog(@" 文件拷贝失败!");
}
if ([fileManager moveItemAtPath:@"/Users/feifanchengxuyuan/Desktop/文件管理/源文件1.txt" toPath:@"/Users/feifanchengxuyuan/Desktop/源文件2.txt" error:nil]) {
NSLog(@" 文件移动成功!");
}
else{
NSLog(@" 文件移动失败!");
}
NSFileHandle *fileHandle = nil;
fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:@"/Users/feifanchengxuyuan/Desktop/源文件2.txt"];
[fileHandle seekToEndOfFile];
NSString *name =@"崔晓宇";
NSData *appendData=[name dataUsingEncoding:NSUTF8StringEncoding];
[fileHandle writeData:appendData];
[fileHandle closeFile];
}
// 数据类型 NSDictionary NSMutableDictionary
return 0;
}
// 1 NSFileManager 和NSFileHandle
// 文件 文件内容
// 1.文件 2.实例化单例对象 3.创建文件或者目录 4.读取 5.复制 6.移动 7.删除
来源:oschina
链接:https://my.oschina.net/u/2499773/blog/528202