OC 文件基本操作
//
// main.m
// oc_13
//
// Created by ma c on 15/12/17.
// Copyright (c) 2015年 博文科技. All rights reserved.
// #import <Foundation/Foundation.h>
#define FILEPATH @"/Users/mac/Desktop/"
#define FILEPATH1 @"/Users/mac/Desktop/bowen.txt" int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
// NSLog(@"Hello, World!"); //NSFileManager 文件管理类(操作文件)
//NSFileHandle 文件句柄(光标)类(操作文件内容) /*
NSFileManager 文件管理类(操作文件)
1.创建文件夹/文件
2.读取文件
3.拷贝文件
4.移动文件(重命名文件)
5.删除文件
6.杂项操作
7.文件遍历 NSFileHandle 文件句柄(光标)类(操作文件内容)
1.文件写入
2.文件读取 */
//----------NSFileManager 文件管理类(操作文件)---------// //单例模式
//创建文件
NSFileManager *fm = [NSFileManager defaultManager];
NSString *fileName = @"bowen.txt";
NSString *filePath = [FILEPATH stringByAppendingPathComponent:fileName];
NSString *content = @"here is a string";
NSData *fileData = [content dataUsingEncoding:NSUTF8StringEncoding]; BOOL flag = [fm createFileAtPath:filePath contents:fileData attributes:nil]; if (flag) {
NSLog(@"文件创建成功");
}
else
NSLog(@"文件创建失败"); //创建文件夹
NSFileManager *fm1 = [NSFileManager defaultManager]; NSString *directoryName = @"bowen";
NSString *directoryPath = [FILEPATH stringByAppendingPathComponent:directoryName]; BOOL flag1 = [fm1 createDirectoryAtPath:directoryPath withIntermediateDirectories:YES attributes:nil error:nil]; if (flag1) {
NSLog(@"文件夹创建成功");
}
else
NSLog(@"文件夹创建失败"); // 读取文件
NSFileManager *fm2 = [NSFileManager defaultManager]; NSString *fileName1 = @"bowen.txt";
NSString *filePath1 = [FILEPATH stringByAppendingPathComponent:fileName1]; NSData *fileData1 = [fm2 contentsAtPath:filePath1];
NSString *fileContents = [[NSString alloc] initWithData:fileData1 encoding:NSUTF8StringEncoding];
NSLog(@"%@",fileContents); // 移动文件
NSFileManager *fm3 = [NSFileManager defaultManager]; NSString *oldName = @"bowen.txt";
NSString *oldPath = [FILEPATH stringByAppendingPathComponent:oldName];
NSString *newName = @"bowen/newBowen.txt";
NSString *newPath = [FILEPATH stringByAppendingPathComponent:newName]; BOOL flag2 = [fm3 moveItemAtPath:oldPath toPath:newPath error:nil]; if (flag2) {
NSLog(@"移动成功");
}
else
NSLog(@"移动失败"); //删除文件
NSFileManager *fm5 = [NSFileManager defaultManager]; NSString *fileName2 = @"bowen.txt";
NSString *filePath2 = [FILEPATH stringByAppendingPathComponent:fileName2]; BOOL flag4 = [fm5 removeItemAtPath:filePath2 error:nil];
if (flag4) {
NSLog(@"文件删除成功");
}else
NSLog(@"文件删除失败"); //拷贝文件
NSFileManager *fm4 = [NSFileManager defaultManager]; NSString *fromName = @"bowen/newBowen.txt";
NSString *fromPath = [FILEPATH stringByAppendingPathComponent:fromName];
NSString *atName = @"bowen.txt";
NSString *atPath =[FILEPATH stringByAppendingPathComponent:atName]; BOOL flag3 = [fm4 copyItemAtPath:fromPath toPath:atPath error:nil]; if (flag3) {
NSLog(@"文件拷贝成功");
}else
NSLog(@"文件拷贝失败"); //杂项操作
NSFileManager *fm6 = [NSFileManager defaultManager];
NSString *fileName3 = @"bowen.txt";
NSString *filePath3 = [FILEPATH stringByAppendingPathComponent:fileName3]; BOOL flag5 = [fm6 fileExistsAtPath:filePath3]; if (flag5) {
NSDictionary *infoDic = [fm6 attributesOfItemAtPath:filePath3 error:nil];
NSLog(@"%@",infoDic);
NSString *size = [infoDic objectForKey:NSFileSize];
NSLog(@"文件大小:%@",size);
}
else
NSLog(@"文件不存在"); //文件遍历(浅遍历,深遍历) NSFileManager *fm7 = [NSFileManager defaultManager]; NSString *directoryName2 = @"bowen";
NSString *directoryPath2 = [FILEPATH stringByAppendingPathComponent:directoryName2];
//浅遍历
NSArray *fileArr = [fm7 contentsOfDirectoryAtPath:directoryPath2 error:nil];
NSLog(@"%@",fileArr);
//深遍历
NSArray *allFileArr = [fm7 subpathsOfDirectoryAtPath:directoryPath2 error:nil];
NSLog(@"%@",allFileArr); //-----------NSFileHandle 文件句柄类(操作文件内容)------------//
//文件读取
NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:FILEPATH1]; NSData *fileData2 = [fh readDataOfLength:];
NSString *dataStr = [[NSString alloc] initWithData:fileData2 encoding:NSUTF8StringEncoding];
NSLog(@"%@",dataStr); NSData *fileData3 = [fh readDataOfLength:];
NSString *dataStr1 = [[NSString alloc] initWithData:fileData3 encoding:NSUTF8StringEncoding];
NSLog(@"%@",dataStr1); [fh seekToFileOffset:];//移动光标位置 NSData *fileData4 = [fh readDataToEndOfFile];
NSString *dataStr2 = [[NSString alloc] initWithData:fileData4 encoding:NSUTF8StringEncoding];
NSLog(@"%@",dataStr2); //文件写入
NSFileHandle *fh1 =[NSFileHandle fileHandleForWritingAtPath:FILEPATH1]; NSString *contents1 = @"Hello Horld";
NSData *contents1Data =[contents1 dataUsingEncoding:NSUTF8StringEncoding]; //[fh1 truncateFileAtOffset:0];//只能在写入的时候用-移动光标位置
[fh1 writeData:contents1Data]; }
return ; }
OC 文件基本操作的更多相关文章
- java之文件基本操作
java之文件基本操作 1 使用 BufferedReader 在控制台读取字符 public static void readChar() throws IOException{ char c; I ...
- swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者
Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...
- Linux - 文件基本操作管理
文件基本操作管理 复制文件和目录 格式: Cp 源文件(文件夹) 新目标文件名(文件夹) 相同目录下,指定文件名. 不同目录下,不需要指定文件名. 参数: –r:递归复制整个目录树. –v:再复制 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----目录结构及文件基本操作
Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录 ...
- Linux 01 Liunx目录结构及文件基本操作
Linux目录结构及文件基本操作 1.Linux的文件组织目录结构(遵循FHS标准) FHS(Filesystem Hierarchy Standard)标准:多数Linux版本采用这种文件组织形式, ...
- Swift基础之OC文件调用Swift代码(在上次的基础上写的)
前两天刚写过Swift调用OC,今天在原来的基础上,实现OC调用Swift. 首先,创建一个OneSwiftFile.swift文件,创建一个继承于NSObject的类(这个地方你可以自己选择继承的父 ...
- 文件基本操作 (C语言)
一切皆文件 ---Linux 头文件 <stdio.h> 中定义了文件的相关操作 #include <stdio.h> 文件操作基本流程: 打开:fopen 相关操作 关闭:f ...
- Linux 目录结构及文件基本操作
Linux 目录结构及文件基本操作 实验介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux ...
- NO.4day LINUX centos 文件基本操作
LINUX centos 文件基本操作 1 LINUX简介 Linux的定义:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CP ...
随机推荐
- Centos 更改系统时间
.date //查看本地 .hwclock --show //查看硬件的时间 .如果硬件的时间是对不上,那就对硬件的时间进行修改 .hwclock --set --date '2222-22-22 2 ...
- 03:requests与BeautifulSoup结合爬取网页数据应用
1.1 爬虫相关模块命令回顾 1.requests模块 1. pip install requests 2. response = requests.get('http://www.baidu.com ...
- go-restful 实现一个web server
go web server 1. 在ubuntu上安装go. 在ubuntu14.04上目前,最高的版本是golang-1.6 $ sudo apt-get install golang-1.6 $ ...
- C_Learning (1)
/数据类型及占用字节 char 1个字节{-128~127} int 2.4个字节,取决于平台是16位还是32位机子{-65536~65535} short int 2个字节{-32768 ...
- linux虚拟机中安装vm_tool的方法及用处
解决问题:实现虚拟机VMware上linux与windows互相自由复制与粘贴.如在同一个系统下ctrl+c 与ctrl+v一样方便.解决了只能通过U盘摆渡复制的繁琐问题. 系统环境: 虚拟机VMwa ...
- 《将博客搬至51CTO》
想把你的博客搬家到51CTO吗?想拥有一键式搬家的体验吗? 就算家大业大不好搬也没关系,我们帮你! 51CTO推出专业的搬家工具,用最短的时间.最快的速度,为你在这儿搭建一个温馨的家. 在这儿,你可以 ...
- luogu P2073 送花 线段树
思路&心路 一眼认定沙比提 写的比较慢,写了1小时吧 开心的交上去 卧槽,只有20? 不服不服,拿着题解的代码去对拍 Emma,<100没问题 100000数据错了,还只是错了一个数据 ...
- hystrix两种隔离模式分析
hystrix隔离模式目前有两种方式:信号量模式和线程池模式. 但信号量并不支持超时,当被调服务发生问题时,有少部分用户会长时间无法得到响应. 另外,使用线程池模式无法传递Header,我估计是由于线 ...
- Visual Studio 项目模板制作(二)
上一篇,我们制作了项目模板,本篇我制作项模板 首先,从我们需要导出模板的项目中,文件->导出模板,弹出 导出模板向导 对话框 选择项模板,点击下一步 选择要导出的项,点击下一步 选择要Refer ...
- mysql删除sql表添加别名及删除sql的注意事项
本文为博主原创,未经允许不得转载: 根据平常的习惯,个人会将操作的表后面添加一个别名,无论是使用还是不使用的时候,均是为了 修改还是扩展sql的时候更加安全,方便,快捷. 今天在写删除的sql时,对表 ...