#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

[self handleNSFileManage];

}

// 文件管理

- (void)handleNSFileManage{

// NSFileManager 是一个单例类,我们称之为文件管理类,是一个专门用来管理文件的工具,主要可以完成以下功能:文件的添加,文件的删除,文件的移动,文件的拷贝;

// 创建文件管理对象

NSFileManager *fileManage = [NSFileManager defaultManager];

// 1.文件的添加

// 例如:要在Documents文件夹下创建一个File1文件夹

// ①首先要获取Documents文件夹路径

NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES)lastObject];

// ②接着需要准备要创建的文件路径

NSString *File1Path = [documentsPath stringByAppendingPathComponent:@"Flie1"];

// ③创建文件夹

// 参数1:文件路径

// 参数2:如果文件中已经有别的目录,是否还要创建

// 参数3,4:属性,报错信息,都给nil

// 用来判断要创建的文件是否存在

BOOL isHave = [fileManage fileExistsAtPath:File1Path];

if (isHave) {

NSLog(@"文件已存在");

}else{

NSLog(@"文件不存在");

BOOL isSuccess = [fileManage createDirectoryAtPath:File1Path withIntermediateDirectories:YES attributes:nil error:nil];

NSLog(@"%@",isSuccess ? @"创建成功" : @"创建失败");

}

NSLog(@"%@",File1Path);

// 2.文件的删除

// 判断要删除的文件是否存在

if ([fileManage fileExistsAtPath:File1Path]) {

NSLog(@"文件存在");

// 删除

BOOL isSuccess = [fileManage removeItemAtPath:File1Path error:nil];

NSLog(@"%@",isSuccess ? @"删除成功" : @"删除失败");

}else{

NSLog(@"文件不存在");

}

// 3.文件的拷贝

//  简单示范:准备一个Love.txt文件拖入工程,拷贝到File1文件夹中

// ①获取要拷贝的文件路径

NSString *lovePath = [[NSBundle mainBundle]pathForResource:@"Love" ofType:txt];

// ②准备要拷贝过去的文件路径

NSString *toLovePath = [File1Path stringByAppendingPathComponent:@"Love.txt"];

// 简单判断拷贝过去的文件路径是否存在

if (![fileManage fileExistsAtPath:toLovePath]) {

BOOL isSuccess = [fileManage copyItemAtPath:lovePath toPath:toLovePath error:nil];

NSLog(@"%@",isSuccess ? @"拷贝成功" : @"拷贝失败");

}

// 4.文件的移动

// 例如:将file1文件移动到library文件夹下

// ①获取library文件路径

NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)lastObject];

// 获取在libraryPath文件中加入file1的路径

NSString *toFilePath = [libraryPath stringByAppendingPathComponent:@"File1"];

if (![fileManage fileExistsAtPath:toFilePath]) {

BOOL isSuccess = [fileManage moveItemAtPath:File1Path toPath:toFilePath error:nil];

NSLog(@"%@",isSuccess ? @"移动成功" : @"移动失败");

}

// 通过NSFileManage计算文件的大小

// 计算toLovePath路径下的文件大小

// NSDictionary *info = [fileManage attributesOfItemAtPath:toLovePath error:nil];

// NSLog(@"%lfM",info.fileSize/1024.0/1024.0);

}

iOS文件的管理(添加,删除,拷贝,移动)的更多相关文章

  1. Saltstack sls文件:批量添加删除计划任务

    一.使用sls文件 批量添加计划任务 1.创建salt目录 mkdir /srv/{salt,pillar} 2.再salt目录下创建文件 vim crontab.sls 3.添加内容 # 添加的命令 ...

  2. iOS NSFileManager对沙盒文件及目录添加删除操作

    iOS 使用 NSFileManager对沙盒里面的文件和目录,增加,修改,删除操作: - (void)viewDidLoad { [super viewDidLoad]; self.title = ...

  3. asp.net 实现对xml文件的 读取,添加,删除,修改

    用于修改站内xml文件 已知有一个XML文件(bookstore.xml)如下:<?xml version="1.0" encoding="gb2312" ...

  4. 文件处理工具 gif合成工具 文件后缀批量添加工具 文件夹搜索工具 重复文件查找工具 网页图片解析下载工具等

    以下都是一些简单的免费分享的工具,技术支持群:592132877,提供定制化服务开发. Gif动图合成工具 主要功能是扫描指定的文件夹里的所有zip文件,然后提取Zip文件中的图片,并合成一张gif图 ...

  5. [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  6. 关于SVN删除后的文件不能重新添加(正常途径不行)

    在你自己的机器上(即SVN客户端),把“新建test”文件夹标记为删除,然后提交,在删除之前可以备份“新建test”文件夹,提交后,在当前文件夹下更新SVN.然后把你刚刚备份的文件夹重新放到该目录下. ...

  7. iOS——文件操作NSFileManager (创建、删除,复制,粘贴)

    iOS——文件操作NSFileManager (创建.删除,复制,粘贴)       iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像android,没有SD卡概念,不能直接访问图像.视 ...

  8. ios开发问题:添加库和复制其它工程文件编译错误问题

    首先添加库问题: 选择页签Build Phases->Link Binary With Libraries点+添加库 然后command+shift+k清除历史debug的垃圾 复制其它工程文件 ...

  9. 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)

    原文:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据) 我们都知道,在asp.net中修改 ...

随机推荐

  1. idea导入jdk源码查看(xjl456852原创)

    idea添加了jdk环境后,却无法查看jdk源码,只能通过idea自带的反编译查看,看起来有些不爽. 下面来说一下如何设置,导入jdk源码,查看时通过源码查看jdk. 1.点击菜单 File -> ...

  2. 转:Ubuntu下ibus-sunpinyin的安装及翻页快捷键设置!

    在windows下,好多人都已经习惯了使用搜狗拼音,到ubuntu下,忽然没有极为顺手的输入法,实为郁闷,但是确实还没有for linux版本的搜狗使用,这是搜狗的商业策略,我们无法掌控,但是,如果你 ...

  3. struts2模版搭建

    点击MyEclipse菜单栏File按钮,点击new-->Web Project 输入Project name之后点击Finish 项目创建完成. 然后右键项目,点击MyEclipse--> ...

  4. spring配置datasource三种方式 数据库连接池

    尊重原创(原文链接):http://blog.csdn.net/kunkun378263/article/details/8506355 1.使用org.springframework.jdbc.da ...

  5. Python第三方库之openpyxl(8)

    Python第三方库之openpyxl(8) 饼图 饼图将数据绘制成一个圆片,每个片代表整体的百分比.切片是按顺时针方向绘制的,0在圆的顶部.饼图只能取一组数据.该图表的标题将默认为该系列的标题. 2 ...

  6. cobbler安装配置(二)

    安装环境: 操作系统:CentOS 6.5 x86_64测试机器ip:192.168.0.1 关闭防火墙.selinux:service iptables stop && chkcon ...

  7. OSPF 提升四 Network Types & FRAM-RELAY

    Network Types 1.loopback 2.point-to-point 3.broadcast 4.NBMA 5.POINT-TO-Multipoint 6.point-To-Multip ...

  8. Leetcode 336.回文对

    回文对 给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串. 示例 1: 输入: ["abcd&quo ...

  9. TOJ 4095: love168yk的选美大赛

    4095: love168yk的选美大赛  Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal Submit: ...

  10. 一堆Offer怎么选?这样做就不纠结了

    有个朋友,工作了10年左右,春节后换工作,拿了三个Offer(西安): 通信行业的一家研究所,软件开发工程师,月薪7K,承诺有月奖金.年终奖金 一家做大数据的公司,软件开发工程师,月薪15K,13薪 ...