iOS文件的管理(添加,删除,拷贝,移动)
#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文件的管理(添加,删除,拷贝,移动)的更多相关文章
- Saltstack sls文件:批量添加删除计划任务
一.使用sls文件 批量添加计划任务 1.创建salt目录 mkdir /srv/{salt,pillar} 2.再salt目录下创建文件 vim crontab.sls 3.添加内容 # 添加的命令 ...
- iOS NSFileManager对沙盒文件及目录添加删除操作
iOS 使用 NSFileManager对沙盒里面的文件和目录,增加,修改,删除操作: - (void)viewDidLoad { [super viewDidLoad]; self.title = ...
- asp.net 实现对xml文件的 读取,添加,删除,修改
用于修改站内xml文件 已知有一个XML文件(bookstore.xml)如下:<?xml version="1.0" encoding="gb2312" ...
- 文件处理工具 gif合成工具 文件后缀批量添加工具 文件夹搜索工具 重复文件查找工具 网页图片解析下载工具等
以下都是一些简单的免费分享的工具,技术支持群:592132877,提供定制化服务开发. Gif动图合成工具 主要功能是扫描指定的文件夹里的所有zip文件,然后提取Zip文件中的图片,并合成一张gif图 ...
- [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表
写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...
- 关于SVN删除后的文件不能重新添加(正常途径不行)
在你自己的机器上(即SVN客户端),把“新建test”文件夹标记为删除,然后提交,在删除之前可以备份“新建test”文件夹,提交后,在当前文件夹下更新SVN.然后把你刚刚备份的文件夹重新放到该目录下. ...
- iOS——文件操作NSFileManager (创建、删除,复制,粘贴)
iOS——文件操作NSFileManager (创建.删除,复制,粘贴) iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像android,没有SD卡概念,不能直接访问图像.视 ...
- ios开发问题:添加库和复制其它工程文件编译错误问题
首先添加库问题: 选择页签Build Phases->Link Binary With Libraries点+添加库 然后command+shift+k清除历史debug的垃圾 复制其它工程文件 ...
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
原文:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据) 我们都知道,在asp.net中修改 ...
随机推荐
- STM32L0开发——ADC多通道采集,IDE和IAR开发注意事项
keil开发L0系列是免费的,官方提供许可的.因此建议Keil开发,L011F3由于flash只有8K,因此不建议HAL库,建议使用cubemx+LL(或snippets库).0.起初,可以参考官方库 ...
- c++ 整数读入优化
这个函数!!!! 它真的巨好用!!! 改了两天 换了两个版本的代码 都TLE了 然后尝试着在文件头加了这个替换了cin和scanf 结果意外地发现两个文件都突然能过了??? 太神奇了叭! 强烈安利! ...
- JQuery中如何处理键盘事件
背景:比如在页面中,敲击回车键以后,实现登录功能,在之前的Winform开发时,也遇到过处理键盘事件的功能,比如游戏软件中,上下左右的移动等. 代码如下: $(document).keydown(fu ...
- 学习Gulp过程中遇到的一些单词含义
注:以下有的单词的含义不仅仅在gulp里面是一样的,在其他某些语言里面也是一样 nodejs Doc:https://nodejs.org/api/stream.html gulp Api:http: ...
- SHOWMODALDIALOG表单提交时禁止打开新窗口
前提条件:showmodaldialog中有表单form.当action="#"的时候,提交表单,不会打开新窗口,但这种#自提有时不能用,#是本页面完整的带参数的url,如果表单中 ...
- bzoj1975: [Sdoi2010]魔法猪学院【k短路&A*算法】
1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2446 Solved: 770[Submit][Statu ...
- out.print和out.write
这是一个JSP页面: <%@ page language="java" import="java.util.*" %> <%@ page p ...
- 线程池的使用。好文。mark【http://blog.csdn.net/rwecho/article/details/21157289】
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端执行一个异步任务你还只是如下new T ...
- ⑨要写信(codevs 1697)
题目描述 Description 琪露诺(冰之妖精)有操控冷气的能力.能瞬间冻结小东西,比普通的妖精更危险.一直在释放冷气的她周围总是非常寒冷. 由于以下三点原因…… 琪露诺的符卡 冰符“Icicle ...
- MATLAB(1)
前言 之前经常用MATLAB,却不小心停留在了舒适区,连基本的调试方法都没有掌握.本文主要是对MATLAB程序调试中的一般方法进行总结,也是自己学习的记录.全文大致分为三个段落: 1)代码内调试: 2 ...