//
// 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 文件基本操作的更多相关文章

  1. java之文件基本操作

    java之文件基本操作 1 使用 BufferedReader 在控制台读取字符 public static void readChar() throws IOException{ char c; I ...

  2. swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者

    Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...

  3. Linux - 文件基本操作管理

    文件基本操作管理   复制文件和目录 格式: Cp 源文件(文件夹) 新目标文件名(文件夹) 相同目录下,指定文件名. 不同目录下,不需要指定文件名. 参数: –r:递归复制整个目录树. –v:再复制 ...

  4. (大数据工程师学习路径)第一步 Linux 基础入门----目录结构及文件基本操作

    Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录 ...

  5. Linux 01 Liunx目录结构及文件基本操作

    Linux目录结构及文件基本操作 1.Linux的文件组织目录结构(遵循FHS标准) FHS(Filesystem Hierarchy Standard)标准:多数Linux版本采用这种文件组织形式, ...

  6. Swift基础之OC文件调用Swift代码(在上次的基础上写的)

    前两天刚写过Swift调用OC,今天在原来的基础上,实现OC调用Swift. 首先,创建一个OneSwiftFile.swift文件,创建一个继承于NSObject的类(这个地方你可以自己选择继承的父 ...

  7. 文件基本操作 (C语言)

    一切皆文件 ---Linux 头文件 <stdio.h> 中定义了文件的相关操作 #include <stdio.h> 文件操作基本流程: 打开:fopen 相关操作 关闭:f ...

  8. Linux 目录结构及文件基本操作

    Linux 目录结构及文件基本操作 实验介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux ...

  9. NO.4day LINUX centos 文件基本操作

    LINUX centos 文件基本操作 1 LINUX简介 Linux的定义:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CP ...

随机推荐

  1. SNMP学习笔记之SNMP TRAP简介、流程以及使用Python实现接受Trap信息

    0x00 SNMP TRAP简介 SNMP(Simple Network Management Protocol) trap是一种很有用,但是也容易让人难以理解的协议. 虽然名字叫做简单网络管理协议, ...

  2. this逃逸

    首先,什么是this逃逸? this逃逸是指类构造函数在返回实例之前,线程便持有该对象的引用. 常发生于在构造函数中启动线程或注册监听器. eg: public class ThisEscape { ...

  3. 20145204《网络对抗》MAL后门原理与实践

    20145204<网络对抗>MAL后门原理与实践 实践内容说明 (1)使用netcat获取主机操作Shell,cron启动 (1分) (2)使用socat获取主机操作Shell, 任务计划 ...

  4. JQuery插件模板

    (function($){ $.fn.插件名 = function(settings){ var defaultSettings = { } /* 合并默认参数和用户自定义参数 */settings ...

  5. ubuntu 安装 ftp服务

    1. 更新源列表 ---> sudo apt-get update 2. 安装vsftpd ---> sudo apt-get install vsftpd (安装) ----> s ...

  6. [BZOJ1776][Usaco2010 Hol]cowpol 奶牛政坛

    Description 农夫约翰的奶牛住在N (2 <= N <= 200,000)片不同的草地上,标号为1到N.恰好有N-1条单位长度的双向道路,用各种各样的方法连接这些草地.而且从每片 ...

  7. UVa 11093 环形跑道(模拟)

    https://vjudge.net/problem/UVA-11093 题意:环形跑道上有n个加油站,编号为1~n.第i个加油站可以加油pi加仑,从加油站i开到下一站需要qi加仑汽油.输出最小的起点 ...

  8. Windows 10 无法调节亮度的解决办法

    我的笔记本在更新完14393后开始的一段时间内是可以正常调节亮度的,但是后来就莫名奇妙地不能调节亮度了,而且电源选项里的亮度调节滚动条也不见了.网上查了很多方法,诸如修改注册表.更新驱动之类的都试过, ...

  9. 2:JavaScript中的基本运算

    今天说的是JavaScript中的数据基本运算 在上一节中已经说了关于JavaScript中的基本数据类型 那么数据有了 剩下来就是数据之间的运算 表达式-------预算符(赋值 比较 算数 逻辑 ...

  10. BZOJ 4416 【SHOI2013】 阶乘字符串

    题目链接:阶乘字符串 又是一道不会做的题……看了题解后我被吓傻了…… 首先我们可以有一个显然的\(O(2^nn)\)的做法.我们先预处理出\(g_{i,j}\)表示字符串中\(i\)号位置开始第一个\ ...