黑马程序员——Foundation——NSFileManager和NSFileHandle

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

//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;
}

时间: 2024-10-27 05:35:49

黑马程序员——Foundation——NSFileManager和NSFileHandle的相关文章

黑马程序员——Foundation学习笔记(NSSet和NSMutableSet)

==========android培训.ios培训.java培训.期待与您交流========== 一.NSSet: NSSet NSSet里面存储的元素没有顺序,NSArray中的元素有顺序. NSSet *s = [NSSet set]; // 创建一个空的Set,永远是空,不可变. NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose",nil]; NSString *str = [s2 anyObject]; //

黑马程序员--Foundation框架之--NSObject类

OC中的Foundation框架是系统提供的,他就相当于是系统的一套api,其内部有很多现有的类和功能提供给我们使用. 那么今天首先来介绍一下Foundation框架中的第一个类NSObject. // // Person.h // 13_NSObjectMethod // // Created by waterfoxjie 15-03-31. // Copyright (c) 2015年 waterfoxjie. All rights reserved. // #import <Foundat

黑马程序员——Foundation框架的小总结

一.Foundation框架—结构体 一.基本知识 Foundation框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文件就可以了.即#import<foundation/foundation.h> 补充:core foundation框架相对底层,里面的代码几乎都是c语言的,而foundation中是OC的. 二.常用的结构体介绍及简单使用 常用的结构体: (一)NSRang的基本使用

黑马程序员-Foundation框架之数组和字典

一.Foundation框架简介 Foundation框架,顾名思义就是基础框架.基础框架上的类都是与用户界面无关的,为所有的程序开发提供一个基础.OC的基础框架常用的类包括:数组,字典,数字,字符串等以及它们的子类.要使用这个框架需要在引入头文件#import <Foundation/Foundation.h> 二.数组 NSArray类以及它的子类NSMutableArray,一个是不可变数组,一个是可变数组.下面通过代码来看一下它的一些基本的用法. 1 #import <Found

黑马程序员--Foundation框架之--NSDirctionary类以及它的子类NSMutableDirctionary类

------IOS培训期待与您交流! ------- 今天来看一下Foundation框架中的NSDirctionary 类,NSMutableDirctionary类,OC中叫字典,字典是无序的,这个和NSArray不一样. 一.NSDirctionary类 1.创建方法 // 字典的创建 NSArray *array1 = [NSArray arrayWithObjects:@"zhangsan",@"zhangfei", nil nil]; NSArray *

黑马程序员--Foundation框架之--NSArray类以及它的子类NSMutableArray类

今天我们继续来看一下Foundation框架中的NSArray类和 NSMutableArray类,NSArray类 是不可变的,NSMutableArray类是可变的. 一.NSArray类 NSArray中不可以存放基本数据类型,只能存放类的实例,如果需要将基本类型.结构体放入到数组中得话,需要通过NSNumber/NSValue进行数据的封装 同时不能在NSArray中存储nil // // main.m // 16_NSArray // // Created by waterfoxjie

黑马程序员--Foundation框架之--类其他常用的类:NSNumber,NSDate

------IOS培训期待与您交流! ------- Foundation的其他常用的类:NSNumber,NSDate 一.NSNumber 这个类主要是用来封装基本类型的,OC 中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去. 从这一点上我们就可以看出NSNumber是很重要的,后面一定会经常用到. 1.封包和解包 // 创建NSNumber // 封包 NSNumber *intNumber = [NSNumber numberWithI

黑马程序员--Foundation框架之--NSString类以及它的子类NSMutableString类

继续看一下Foundation框架中的常用对象:NSString和NSMutableString 在OC中NSString对象是不可变的,和Java中的String一样的,而NSMutableString是可变的,和Java中的StringBuilder一样. 一.NSString对象 在OC中,NSString对象是非常重要的一个对象,也是最基础的一个对象,是用来处理字符串的常用类. 下面来看一下NSString的一些方法的使用: 1.创建的方法 // 字符串的创建方式 NSString *s

黑马程序员------Foundation框架中各种牛瓣数据类型

-----iOS培训.Android培训.Java培训,期待与您交流----- 一.NSRange.NSPoint\CGPoint. NSSize\CGSize.NSRect\CGRect (CGPint CGSize)结构体 1)NSRange NSRange表示一个范围,比如我们想求个@"I fall in love with Objective-C~";  这个字符串中"love"的表示范围就是位置从11开始,长度为4: NSRange的本质是一个结构体, 里