zoukankan      html  css  js  c++  java
  • 黑马程序员___Foundation__NSFileManager和NSFileHandle

    //NSFileManager
    #import
    <Foundation/Foundation.h> #define PATH @"/Users/fengze/Desktop" int main(int argc, const char * argv[]) { @autoreleasepool { //创建 file manager对象 NSFileManager *fm = [NSFileManager defaultManager]; //查看指定文件路径并返回一个数组,数组储存文件和文件夹的目录 NSArray *array = [fm contentsOfDirectoryAtPath:PATH error:nil]; // 上述方法只是浅度遍历,不能遍历文件夹里面的内容 //深度遍历 array = [fm subpathsOfDirectoryAtPath:PATH error:nil]; // 可以遍历当前文件夹里面所有内容 // 创建目录 [fm createDirectoryAtPath:[NSString stringWithFormat:@"%@/练习",PATH] withIntermediateDirectories:NO attributes:nil error:nil]; // 上述意思是在PATH目录下创建一个dir文件 //创建文件 [fm createFileAtPath:[NSString stringWithFormat:@"%@dir",PATH] contents:[@"hello" dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]; //在dir文件夹里面创建了hello的文件,但是创建的是一个什么拓展名单文件? // // //文件的删除 // [fm removeItemAtPath:[NSString stringWithFormat:@"%@/dir",PATH] error:nil]; //会把目录下的所有内容删除 //文件的拷贝 [fm copyItemAtPath:[NSString stringWithFormat:@"%@/dir",PATH] toPath:[NSString stringWithFormat:@"%@/dir2",PATH] error:nil]; //文件的移动 [fm moveItemAtPath:[NSString stringWithFormat:@"%@/dir",PATH] toPath:[NSString stringWithFormat:@"%@/dir2",PATH] error:nil]; /* 文件的删除,文件的拷贝,文件的移动都是既可以用在文件上面,也可以用在文件夹上面 */ } return 0; }

    NSHandle

    #import <Foundation/Foundation.h>
    
    
    //NShandle称为文件句柄
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            
            //以只读的的方式打开文件生成文件句柄
            NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:@"/Users/fengze/Desktop/test/"];
            
            /*
             文件从硬盘到内存叫做读,从内存到到硬盘叫做写,内存相当于大脑,硬盘相当于课本
             */
            
            //根据指定的范围读取文件内容
            NSData *data = [fh readDataOfLength:3];
            
            data = [fh readDataOfLength:5];    //第二次读取的内容会接着上次读取的内容继续往下读
            
           //一次性读取文件的所有内容
            NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    
            
            //以只写的方式打开文件生成文件句柄
            NSFileHandle *fh2 = [NSFileHandle fileHandleForWritingAtPath:@"/Users/fengze/Desktop/test"];
            
            
            [fh2 writeData:[@"hello" dataUsingEncoding:NSUTF8StringEncoding]];
            //写入的内容会替换掉文件的前面的内容,后面的内容不变
            
           // [fh2 truncateFileAtOffset:0];
            //将文件内容截断值0字节(清空)
            
            //将读写指针设到文件的末尾
            [fh seekToEndOfFile];
            //在文件的末尾追加内容
            [fh2 writeData:[@"xxx" dataUsingEncoding:NSUTF8StringEncoding]];
            
            
            
        }
        return 0;
    }
  • 相关阅读:
    逻辑运算符&逻辑短路
    python运算符&优先性
    python类型强转&二级容器
    python中转义符&str格式化
    python中变量的缓存机制
    底层二进制的计算
    python容器数据类型的特色
    进制的转化
    shell脚本学习(1)-菜鸟教程
    python中yield的用法-简单明了!
  • 原文地址:https://www.cnblogs.com/jia694600474/p/4012338.html
Copyright © 2011-2022 走看看