美文网首页
Objective-C学习笔记 - 目录与文件操作

Objective-C学习笔记 - 目录与文件操作

作者: 遠遊旳遊子 | 来源:发表于2018-08-27 15:05 被阅读0次

    学习目标

    • NSFileManager类常用的文件管理操
    • NSFileHandle类常用的文件数据操作
    • NSData类的常用操作
    • NSFileManager

    <1>创建文件管理器单例对象
    // 初始化
    NSFileManager * fm = [NSFileManager defaultManager];
    
    <2>遍历目录下的内容
    //浅度遍历 仅仅遍历当前文件夹下的第一层子文件夹
    // contentsOfDirectoryAtPath,指定路径下的第一层子文件夹(文件内容)
    - (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
    //深度遍历(又称为递归便利)
    //遍历指定路径下的所有文件夹和文件
    //指定路径下的子文件夹下的所有文件
    - (NSArray *)subpathsOfDirectoryAtPath:(NSString *)path error:(NSError **)error
    
    <3>创建文件
    //创建普通文件
    //createFileAtPath,在指定路径下,创建文件
    //第二个参数contents,是指在创建文件的同时,附上的文件内容
    //第三个参数attributes ,如果写nil, attributes会有系统自动管理
    - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
    
    //创建目录
    //就是在指定路径下创建文件夹
    //withIntermediateDirectories,是否创建没有路径
    - (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error ;
    
    <4>拷贝文件/目录
    //copyItemAtPath,在指定路径下拷贝项目(文件夹,也能文件)
    //srcPath,原路径
    //toPath,目标路径
    - (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;
    
    
    <5>移动文件/目录
    //moveItemAtPath,移动指定路径下的文件或目录,到另外一个指定的路径
    //剪切的同时,也能修改目录或文件的名字
    - (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;
    
    <6>删除文件/目录
    //removeItemAtPath 删除指定路径下的文件夹或者文件
    - (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
    
    
    <7>获取文件属性
    // attributesOfItemAtPath 查看指定目录下的文件或者文件夹的属性
    - (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error;
    
    <8>判断文件是否存在
    - (BOOL)fileExistsAtPath:(NSString *)path;
    
    • NSFileHandle

    NSFileHandle 对文件进行操作,读,写,设置文件指针偏移量的操作

    <1>打开文件方法
    //以只读方式打开
    + (id)fileHandleForReadingAtPath:(NSString *)path;
    //以只写方式打开
    + (id)fileHandleForWritingAtPath:(NSString *)path;
    //以读写方式打开
    + (id)fileHandleForUpdatingAtPath:(NSString *)path;
    
    <2>读指定长度的数据
    //readDataOfLength 读取指定长度的字符串
    //得知,每个汉字在编译器中占三个字节
    - (NSData *)readDataOfLength:(NSUInteger)length;
    
    <3>从当前偏移量读到文件尾
    //是将文本中所有的数据一次性读到内存中
    - (NSData *)readDataToEndOfFile;
    
    <4>设置文件偏移量
    //2.txt中的文字abcefg,如果偏移量为2的话,那么就是从c字符往后读
    //偏移量的默认值为0
    - (void)seekToFileOffset:(unsigned long long)offset;
    
    <5>将文件偏移量定位到文件尾
    //将指针指向文本的结尾
    - (unsigned long long)seekToEndOfFile;
    
    <6>写文件
    //(NSData *)data,内存数据类型
    // NSString *string=@“abc”,[string dataUsingEncoding:NSUTF8StringEncoding]
    - (void)writeData:(NSData *)data;
    
    <7>将缓冲区内容立即同步写入磁盘
    - (void)synchronizeFile;
    
    • NSData

    //如果把字符串转化为NSData
    NSString *str = @"welcome to beijing";
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    
    //NSData 转化为字符串
    NSString *newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    

    相关文章

      网友评论

          本文标题:Objective-C学习笔记 - 目录与文件操作

          本文链接:https://www.haomeiwen.com/subject/quttwftx.html