文档章节

【非凡程序员】 OC第十七节课 文件操作一 (NSFileManager和NSFileHandle)

七月流火zsp
 七月流火zsp
发布于 2015/06/12 22:18
字数 650
阅读 26
收藏 0
点赞 0
评论 0

文件操作

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
       
        //----------- NSFileManager---------//
       
        //实例化一个对象
        NSFileManager * f=[NSFileManager defaultManager];
       
        //根据aaa.txt的路径读取内容
        NSData *data1=[f contentsAtPath:@"/Users/feifanchengxuyuan/Desktop/aaa.txt"];
        NSString *str1=[[NSString alloc]initWithData:data1 encoding:NSUTF8StringEncoding];
        NSLog(@"%@",str);
        
        //从一个文件中直接获取数据(不需要转换)
        NSLog(@"%@", [NSString stringWithContentsOfFile:@"/Users/feifanchengxuyuan/Desktop/aaa.txt" encoding:NSUTF8StringEncoding error:nil]);

        //创建一个b.txt  内容为空
        //创建一个bbb.txt 并且把aaa.txt的文件复制到bbb.txt中
        [f createFileAtPath:@"/Users/feifanchengxuyuan/Desktop/b.txt" contents:nil attributes:nil];
        [f createFileAtPath:@"/Users/feifanchengxuyuan/Desktop/bbb.txt" contents:data1 attributes:nil];
        
        //把str转化为文件流,写入到bbb.txt (如果是已经存在该文件,则会覆盖之前的内容)
        NSString *str2=@"zhang";
        NSData *data2=[str2 dataUsingEncoding:NSUTF8StringEncoding];
        [f createFileAtPath:@"/Users/feifanchengxuyuan/Desktop/bbb.txt" contents:data2 attributes:nil];
   
        //获取路径
        NSString *str3= [f currentDirectoryPath];
        NSLog(@"%@",str3);

          // 更改当前路径
        [f changeCurrentDirectoryPath:@"/Users/feifanchengxuyuan/Desktop/"];
        NSLog(@"%@",[f 
currentDirectoryPath]);
       
        //路径相同就是改名,路径不同就是移动
        [f moveItemAtPath:@"/Users/feifanchengxuyuan/Desktop/b.txt"  toPath:@"/Users/feifanchengxuyuan/Desktop/ccc.txt"  error:nil];
        [f copyItemAtPath:@"/Users/feifanchengxuyuan/Desktop/b.txt" toPath:@"/Users/feifanchengxuyuan/Desktop/ccc" error:nil];

        //遍历当前路径
        NSArray *array=  [f contentsOfDirectoryAtPath:@"/Users/feifanchengxuyuan/Desktop" error:nil];
        NSLog(@"%@,array);
        
         // 枚举遍历
        NSLog(@"%@:[f enumeratorAtPath:@"/Users/feifanchengxuyuan/Desktop"]);
        NSEnumerator *ee=[f enumeratorAtPath:@"/Users/feifanchengxuyuan/Desktop"];
        NSArray *array1=[ee allObjects];
        NSLog(@"%@,array1);              

        //深度遍历当前路径
        NSArray * array1=[f subpathsAtPath:@"/Users/feifanchengxuyuan/Desktop"];
        NSLog(@"%@",array1);

        
        
       // 创建文件夹  withIntermediateDirectories:YES如果没有该文件,就创建,     NO,如果不存就会报错
        NSError *error = nil;
        [f createDirectoryAtPath:@"/Users/feifanchengxuyuan/Desktop3/aaa1" withIntermediateDirectories:YES attributes:nil error:&error];
        if( error )
        {
            NSLog( @"%@", error );
        }
       
   
  //--------------- NSFileHandle------(重点)-----//

        //1 文件必须创建
      //2文件必须给出足够的权限 如 chmod 777文件名+文件类型
       
        //1.获取用户主目录
        NSString *homepath = NSHomeDirectory();
        NSLog( @"homepath: %@", homepath);
        //2.根据参数连接目录
        NSString *sourcepath = [homepath stringByAppendingPathComponent:@"/Desktop/ssss.txt"];
        //只能写@"/Desktop/ssss.txt" 不能写@"/Users/feifanchengxuyuan/Desktop/ssss.txt"因为这是连接目录,自动连接根目录/Users/feifanchengxuyuan

(----------------注意--------------)
        NSLog( @"sourcepath: %@", sourcepath );
       
       //3.创建NSFileHandle对象类型fileHandleForUpdatingAtPath 为可更新的类型
        //fileHandleForReadingAtPath //读取
        NSFileHandle *filhandle = [NSFileHandle fileHandleForUpdatingAtPath:sourcepath];
       
        //4.定位偏移量到文件内容尾部
        [filhandle seekToEndOfFile];
       
        //5.定义要追加的字符串
        NSString *string = @"hello xiaohe   sacnkwanc;w\n";
       
       //6.转化成文件流
        NSData *nsdate = [string dataUsingEncoding:NSUTF8StringEncoding];
       
        //7写数据
        [filhandle writeData:nsdate];

        //8.关闭文件
        [filhandle closeFile];

        
           //将字典直接写入到@"/Users/feifanchengxuyuan/Desktop/Friday.plist"路径下,不需要转换
        NSDictionary *dict=@{
                             @"1":@"a",
                             @"2":@"b",
                             @"3":@"c"
                             };
        [dict writeToFile:@"/Users/feifanchengxuyuan/Desktop/Friday.plist" atomically:YES];

 

          //echo jjjjjj>>aaa.txt  在终端中给aaa.txt添加jjjjjj文本
          cat 文件名是读取内容
     

         chmod 777 文件名---改最大权限    chmod 000 文件名---最小权限
   

   }
    return 0;
}

© 著作权归作者所有

共有 人打赏支持
七月流火zsp
粉丝 9
博文 29
码字总数 11273
作品 0
西安

NSFileManager 文件管理器完成文件的创建、移动、拷贝等管理操作 1.查询文件和目录 OC中查询路径下的目录主要分为浅度遍历和深度遍历。 浅度遍历 NSFileManager * manager = [NSFileManager...

飞奔的土豆 ⋅ 2012/12/15 ⋅ 0

OC 文件管理 NSFileManager NSFileHandle 归档和解档

//输出文件路径 跟目录 NSString stringPath = NSHomeDirectory(); NSLog(@"%@",stringPath); //取出文件路径的组成部分 NSLog(@"%@",[stringPath pathComponents]); //取出文件路径的最后一...

尘埃眠于光年yr ⋅ 2015/11/10 ⋅ 0

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

NSFileManager 主要用于文件 NSFileHandle 主要用于文件内容 在终端输入UNIX命令 cd 切换目录 touch 创建文件 mkdir 创建目录 clear 清屏 ls 查看当前目录下的所有文件 ls -l 查看当前目录下...

温暖c ⋅ 2015/11/09 ⋅ 0

教程1:Objective-C

Objective-C的教程已经看过了。 内容大概有:[Objective-C基础语法(if/else/switch/for...),关键字,运算符],[面向对象(封装/继承/多态)],[Foundation框架常用类],[内存管理],[协...

殷美洪 ⋅ 2013/03/11 ⋅ 0

ASIHTTPRequest 文件下载

四、下载 1、简单下载 打开IB,拖入一个Progress View,在源文件中声明为IBOutlet,然后进行连接。 -( IBAction )goURL{ NSString * path=[ NSSearchPathForDirectoriesInDomains ( NSDocume...

鉴客 ⋅ 2012/01/09 ⋅ 0

【非凡程序员】 OC第十七节课 文件操作二 (归档和解档)

//-----------------------------归档和解档-----(重点)-------、-----------// //可变的文件流 NSMutableData nutabdata=[[NSMutableData alloc]init]; //把用归档格式的数据值给可变的文...

七月流火zsp ⋅ 2015/06/12 ⋅ 0

记录历程第一篇!ios断点续传

// #import "ViewController.h" #define QQURL @"http://211.162.77.51/data2/dmg/aabb46ab7cbb26fbad6f16cb1c7f5a58/QQV3.0.2.dmg" @interface ViewController () { NSURLConnection _conne......

LUKER-PIG ⋅ 2014/01/20 ⋅ 0

行列式介绍[MIT线代第十八九课]

0、前言 MIT线性代数课程精细笔记[第十七课]笔记见正交矩阵和 Gram-Schmidt 正交化[MIT线代第十七课],该笔记是连载笔记,本文由坤博所写,希望对大家有帮助。 一、知识概要 这一节是为下面求...

忆臻 ⋅ 2017/12/14 ⋅ 0

【非凡程序员】 OC第十二节课 (协议)

//协议特点:制定一份协议,其他类如果遵守就需要去实现前提是required(默认) // < > 遵守 // NSObject 既是基协议 又是基类,因此,协议最终都需遵守NSObject // required 必须实现 option...

七月流火zsp ⋅ 2015/06/01 ⋅ 0

iOS新特性框架、仿微信图片浏览、视频监控、爱心动画、文字适配等源码

iOS精选源码 iOS一个看电影、电视剧集合 HDCinema(http://www.code4app.com/thread-29425-1-1.html) 一个非常简易的新特性集成框架NewFeatures(http://www.code4app.com/thread-29433-1-1.ht......

sunnyaigd ⋅ 05/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android JNI 读写Bitmap的方法

Java层创建Bitmap,通过JNI将Bitmap传到C/C++进行处理 Java部分 public static native boolean greenBitmap(Bitmap bitmap); C/C++部分 JNIEXPORT jboolean JNICALL Java_com_test_Test_gree......

国仔饼 ⋅ 13分钟前 ⋅ 0

一次性让你懂async/await,解决回调地狱

什么是async? 欢迎留言讨论 async 函数是 Generator 函数的语法糖。使用 关键字 async 来表示,在函数内部使用 await 来表示异步。相较于 Generator,async 函数的改进在于下面四点: 内置执...

阿K1225 ⋅ 14分钟前 ⋅ 0

angular常用命令

.下载更新操作 1.利用npm下载angular的命令行工具AngularCLI: npm install -g @angular/cli 2.下载jquery: npm install --save jquery 3.更新npm: npm i -g npm 4.更新angular: ng update ......

消散了的诗意 ⋅ 16分钟前 ⋅ 0

window.print 页面打印

定义和用法 print() 方法用于打印当前窗口的内容。 语法 window.print(); window.print() 实际上,是浏览器打印功能菜单的一种程序调用。与点击打印功能菜单一样,不能精确分页,不能设置纸型...

初学者的优化 ⋅ 17分钟前 ⋅ 0

魔兽世界 7.0版本上 PVE装备全攻略

  T套 因为大家应该都会打穿副本的所以具体是哪个boss我就不说了。   T1: 所有套装都在【熔火之心】出   T2: 头原来是在【奥妮克希亚的巢穴】改到黑翼之巢的奈法利安了,腿是在【熔火之...

wangchen1999 ⋅ 17分钟前 ⋅ 0

java.math.BigDecimal使用小结

原文地址 java.math.BigDecimal使用小结 divide方法 使用BigDecimal.divide方法时一定要考虑: 除数是否为0 商是否是无限小数 正确的使用方式 判断除数是否为0,是0做另外的处理逻辑 调用除法...

666B ⋅ 20分钟前 ⋅ 0

关于qstring转char乱码问题。

if (OpenClipboard(NULL)) { HGLOBAL hgClip; EmptyClipboard(); QByteArray byay = FValue.toLocal8Bit(); //转latin编码 char *bochsrc_line = byay.data(); hgClip = GlobalAlloc(GMEM_DD......

backtrackx ⋅ 20分钟前 ⋅ 0

了解SSH加密和连接过程

介绍 SSH或安全shell是安全协议,也是安全管理远程服务器的最常用方式。通过使用多种加密技术,SSH提供了一种机制,用于在双方之间建立加密安全连接,对彼此进行身份验证,以及来回传递命令和...

吴伟祥 ⋅ 27分钟前 ⋅ 0

微信小程序

小程序的全局配置app.json 微信小程序的全局配置保存在app.json文件中。开发者通过使用app.json来配置页面文件(pages)的路径、窗口(window)表现、设定网络超时时间值(networkTimeout)以...

上官清偌 ⋅ 30分钟前 ⋅ 0

【转】百度坐标坐标系之间的转换(JS版代码)

/** * Created by Wandergis on 2015/7/8. * 提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换 *///定义一些常量var x_PI = 3.1415926535897932...

HAVENT ⋅ 31分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部