[非凡程序员]文件管理 NSFileManager NSFileHandle

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"]);
//-----------------------文件管理
//创建一个文件管理 fileManager
NSFileManager *fileManager = [NSFileManager defaultManager];
//创建文件内容 NSString类型
NSString *fileString = 
"listFlie";
//将字符串类型转换为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"]];
//将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:
"/Users/a11/desktop/test.txt" error:nil];
//创建文件目录 也就是创建文件夹
for ([fileManager createDirectoryAtPath:[stringPath stringByAppendingPathComponent:@"newFile.text"] withIntermediateDirectories:YES attributes:nil error:nil]) {
NSLog("文件目录创建成功");
}
//读取文件目录的内容
[fileManager contentsOfDirectoryAtPath:[stringPath stringByAppendingPathComponent:
"newFile.text"] error:nil];
//——————————NSFileHandle-------
//创建一个NSFileHandle
NSFileHandle *fileHandle = nil;
//指定要操作文件的路径 读 写 更新
fileHandle=[NSFileHandle fileHandleForWritingAtPath :"/Users/a11/Desktop/we.txt"];
//指定光标在文件内容末尾
[fileHandle seekToEndOfFile];
//创建需要修改的内容
NSString *appendString = 
"cxy";
//转换成数据流格式
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[]) {

    @autoreleasepool {

       //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:@"yyyyMMdd hhmmss\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.删除


你可能感兴趣的:([非凡程序员]文件管理 NSFileManager NSFileHandle)