//
// 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. python的os模块和sys模块

    os模块 os.getcwd()  获取当前的工作目录 os.chdir('绝对路径/相对于当前工作目录的路径')  改变工作目录,相当于shell的cd命令,例如Windows平台下os.chdir ...

  2. CF#235E. Number Challenge

    传送门 可以理解为上一道题的扩展板.. 然后我们就可以YY出这样一个式子 ${\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^cd(ijk)=\sum_{i=1}^a\sum_{ ...

  3. swift设计模式学习 - 策略模式

    移动端访问不佳,请访问我的个人博客 设计模式学习的demo地址,欢迎大家学习交流 策略模式 策略模式定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户. ...

  4. 51nod 1284 2 3 5 7的倍数

    从1到N 里 是2的倍数 有 N/2 个 然后大概看过这类的blog  所以运用容斥原理 直接计算 是 2 3 5 7 的个数都是多少 然后用N 减去 就是 不是2 3 5 7 的个数了 (离散好像也 ...

  5. BZOJ1726: [Usaco2006 Nov]Roadblocks第二短路 K短路

    Description 贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友.贝茜很喜欢路边的风景,不想那么快地结束她的旅途,于是她每次回农场,都会选择第二短的路径,而不象我们所习惯的那样, ...

  6. label表单的关联性

    <input type="checkbox" id="cr" /> <label for="cr">点击关联复选框& ...

  7. 到底二级域名和一级域名哪个更利于SEO

    到底二级域名和一级域名哪个更利于SEO呢?本文是从百度官方转载详细的介绍:二级域名和一级域名的区别,请各位认真阅读. 二级域名和子域名的区别可以通过以下3点来解读: 一,二级域名的特点 搜索引擎往往将 ...

  8. Java初始化块的作用

    1.使代码更简洁 eg: public class Test { private void init() { System.out.println("初始化状态"); } publ ...

  9. django字段的参数

    所有的模型字段都可以接收一定数量的参数,比如CharField至少需要一个max_length参数.下面的这些参数是所有字段都可以使用的,并且是可选的. null 该值为True时,Django在数据 ...

  10. 搜索:ElasticSearch OR MySQL?

    背景 我们开发一般的企业级Web应用,其实从本质上来说,都是对数据的增删查改进行各个维度的包装.所以说,不管你的程序如何开发,基本上,都离不开数据本身.那么,在开发企业级应用的过程中,很多同学一定遇到 ...