iOS中NSFileManager文件常用操作整合
- //获取Document路径
- + (NSString *)getDocumentPath
- {
- NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- return [filePaths objectAtIndex:];
- }
- //获取Library路径
- + (NSString *)getLibraryPath
- {
- NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
- return [filePaths objectAtIndex:];
- }
- //获取应用程序路径
- + (NSString *)getApplicationPath
- {
- return NSHomeDirectory();
- }
- //获取Cache路径
- + (NSString *)getCachePath
- {
- NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
- return [filePaths objectAtIndex:];
- }
- //获取Temp路径
- + (NSString *)getTempPath
- {
- return NSTemporaryDirectory();
- }
- //判断文件是否存在于某个路径中
- + (BOOL)fileIsExistOfPath:(NSString *)filePath
- {
- BOOL flag = NO;
- NSFileManager *fileManager = [NSFileManager defaultManager];
- if ([fileManager fileExistsAtPath:filePath]) {
- flag = YES;
- } else {
- flag = NO;
- }
- return flag;
- }
- //从某个路径中移除文件
- + (BOOL)removeFileOfPath:(NSString *)filePath
- {
- BOOL flag = YES;
- NSFileManager *fileManage = [NSFileManager defaultManager];
- if ([fileManage fileExistsAtPath:filePath]) {
- if (![fileManage removeItemAtPath:filePath error:nil]) {
- flag = NO;
- }
- }
- return flag;
- }
- //从URL路径中移除文件
- - (BOOL)removeFileOfURL:(NSURL *)fileURL
- {
- BOOL flag = YES;
- NSFileManager *fileManage = [NSFileManager defaultManager];
- if ([fileManage fileExistsAtPath:fileURL.path]) {
- if (![fileManage removeItemAtURL:fileURL error:nil]) {
- flag = NO;
- }
- }
- return flag;
- }
- //创建文件路径
- +(BOOL)creatDirectoryWithPath:(NSString *)dirPath
- {
- BOOL ret = YES;
- BOOL isExist = [[NSFileManager defaultManager] fileExistsAtPath:dirPath];
- if (!isExist) {
- NSError *error;
- BOOL isSuccess = [[NSFileManager defaultManager] createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:&error];
- if (!isSuccess) {
- ret = NO;
- NSLog(@"creat Directory Failed. errorInfo:%@",error);
- }
- }
- return ret;
- }
- //创建文件
- + (BOOL)creatFileWithPath:(NSString *)filePath
- {
- BOOL isSuccess = YES;
- NSFileManager *fileManager = [NSFileManager defaultManager];
- BOOL temp = [fileManager fileExistsAtPath:filePath];
- if (temp) {
- return YES;
- }
- NSError *error;
- //stringByDeletingLastPathComponent:删除最后一个路径节点
- NSString *dirPath = [filePath stringByDeletingLastPathComponent];
- isSuccess = [fileManager createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:&error];
- if (error) {
- NSLog(@"creat File Failed. errorInfo:%@",error);
- }
- if (!isSuccess) {
- return isSuccess;
- }
- isSuccess = [fileManager createFileAtPath:filePath contents:nil attributes:nil];
- return isSuccess;
- }
- //保存文件
- + (BOOL)saveFile:(NSString *)filePath withData:(NSData *)data
- {
- BOOL ret = YES;
- ret = [self creatFileWithPath:filePath];
- if (ret) {
- ret = [data writeToFile:filePath atomically:YES];
- if (!ret) {
- NSLog(@"%s Failed",__FUNCTION__);
- }
- } else {
- NSLog(@"%s Failed",__FUNCTION__);
- }
- return ret;
- }
- //追加写文件
- + (BOOL)appendData:(NSData *)data withPath:(NSString *)path
- {
- BOOL result = [self creatFileWithPath:path];
- if (result) {
- NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:path];
- [handle seekToEndOfFile];
- [handle writeData:data];
- [handle synchronizeFile];
- [handle closeFile];
- return YES;
- } else {
- NSLog(@"%s Failed",__FUNCTION__);
- return NO;
- }
- }
- //获取文件
- + (NSData *)getFileData:(NSString *)filePath
- {
- NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:filePath];
- NSData *fileData = [handle readDataToEndOfFile];
- [handle closeFile];
- return fileData;
- }
- //读取文件
- + (NSData *)getFileData:(NSString *)filePath startIndex:(long long)startIndex length:(NSInteger)length
- {
- NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:filePath];
- [handle seekToFileOffset:startIndex];
- NSData *data = [handle readDataOfLength:length];
- [handle closeFile];
- return data;
- }
- //移动文件
- + (BOOL)moveFileFromPath:(NSString *)fromPath toPath:(NSString *)toPath
- {
- NSFileManager *fileManager = [NSFileManager defaultManager];
- if (![fileManager fileExistsAtPath:fromPath]) {
- NSLog(@"Error: fromPath Not Exist");
- return NO;
- }
- if (![fileManager fileExistsAtPath:toPath]) {
- NSLog(@"Error: toPath Not Exist");
- return NO;
- }
- NSString *headerComponent = [toPath stringByDeletingLastPathComponent];
- if ([self creatFileWithPath:headerComponent]) {
- return [fileManager moveItemAtPath:fromPath toPath:toPath error:nil];
- } else {
- return NO;
- }
- }
- //拷贝文件
- +(BOOL)copyFileFromPath:(NSString *)fromPath toPath:(NSString *)toPath
- {
- NSFileManager *fileManager = [NSFileManager defaultManager];
- if (![fileManager fileExistsAtPath:fromPath]) {
- NSLog(@"Error: fromPath Not Exist");
- return NO;
- }
- if (![fileManager fileExistsAtPath:toPath]) {
- NSLog(@"Error: toPath Not Exist");
- return NO;
- }
- NSString *headerComponent = [toPath stringByDeletingLastPathComponent];
- if ([self creatFileWithPath:headerComponent]) {
- return [fileManager copyItemAtPath:fromPath toPath:toPath error:nil];
- } else {
- return NO;
- }
- }
- //获取文件夹下文件列表
- + (NSArray *)getFileListInFolderWithPath:(NSString *)path
- {
- NSFileManager *fileManager = [NSFileManager defaultManager];
- NSError *error;
- NSArray *fileList = [fileManager contentsOfDirectoryAtPath:path error:&error];
- if (error) {
- NSLog(@"getFileListInFolderWithPathFailed, errorInfo:%@",error);
- }
- return fileList;
- }
- //获取文件大小
- + (long long)getFileSizeWithPath:(NSString *)path
- {
- unsigned long long fileLength = ;
- NSNumber *fileSize;
- NSFileManager *fileManager = [NSFileManager defaultManager];
- NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil];
- if ((fileSize = [fileAttributes objectForKey:NSFileSize])) {
- fileLength = [fileSize unsignedLongLongValue];
- }
- return fileLength;
- // NSFileManager* manager =[NSFileManager defaultManager];
- // if ([manager fileExistsAtPath:path]){
- // return [[manager attributesOfItemAtPath:path error:nil] fileSize];
- // }
- // return 0;
- }
- //获取文件创建时间
- + (NSString *)getFileCreatDateWithPath:(NSString *)path
- {
- NSString *date = nil;
- NSFileManager *fileManager = [NSFileManager defaultManager];
- NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil];
- date = [fileAttributes objectForKey:NSFileCreationDate];
- return date;
- }
- //获取文件所有者
- + (NSString *)getFileOwnerWithPath:(NSString *)path
- {
- NSString *fileOwner = nil;
- NSFileManager *fileManager = [NSFileManager defaultManager];
- NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil];
- fileOwner = [fileAttributes objectForKey:NSFileOwnerAccountName];
- return fileOwner;
- }
- //获取文件更改日期
- + (NSString *)getFileChangeDateWithPath:(NSString *)path
- {
- NSString *date = nil;
- NSFileManager *fileManager = [NSFileManager defaultManager];
- NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil];
- date = [fileAttributes objectForKey:NSFileModificationDate];
- return date;
- }
iOS中NSFileManager文件常用操作整合的更多相关文章
- Hadoop HDFS文件常用操作及注意事项
Hadoop HDFS文件常用操作及注意事项 1.Copy a file from the local file system to HDFS The srcFile variable needs t ...
- go语言之进阶篇文件常用操作接口介绍和使用
一.文件常用操作接口介绍 1.创建文件 法1: 推荐用法 func Create(name string) (file *File, err Error) 根据提供的文件名创建新的文件,返回一个文件对 ...
- python 异常处理、文件常用操作
异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm
- OC NSFileManager(文件路径操作)
OC NSFileManager(文件路径操作) 初始化 NSFileManager * fm = [NSFileManager defaultManager]; 获取当前目录 [fm current ...
- Python基础灬文件常用操作
文件常用操作 文件内建函数和方法 open() :打开文件 read():输入 readline():输入一行 seek():文件内移动 write():输出 close():关闭文件 写文件writ ...
- iOS中几种常用的数据存储方式
自己稍微总结了一下下,方便大家查看 1.write直接写入文件的方法 永久保存在磁盘中,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...
- java中 File文件常用操作方法的汇总
一.IO流: 1.全称为:Input Output---------输入输出流. 输入:将文件读到内存中. 输出:将文件从内存中输出到其他地方. 2.IO技术的作用: 主要是解决设备与设备之间的数据传 ...
- linux下拷贝命令中的文件过滤操作记录
在日常的运维工作中,经常会涉及到在拷贝某个目录时要排查其中的某些文件.废话不多说,下面对这一需求的操作做一记录: linux系统中,假设要想将目录A中的文件复制到目录B中,并且复制时过滤掉源目录A中的 ...
- [转]Windows系统中监控文件复制操作的几种方式
1. ICopyHook 作用: 监视文件夹和打印机移动,删除, 重命名, 复制操作. 可以得到源和目标文件名. 可以控制拒绝操作. 缺点: 不能对文件进行控制. 只对Shell文件操作有效, 对原生 ...
随机推荐
- 将SQLite移植到ARM板上 (转)
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它, 它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够 ...
- Eclipse与IDEA快捷键对比
from:http://blog.csdn.net/dc_726/article/details/9531281 花了一天时间熟悉IDEA的各种操作,将各种快捷键都试了一下,感觉很是不错!于是就整理了 ...
- spring装载配置文件失败报错:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException
Tomcat容器启动失败,找到 debug日志一看: Context initialization failed org.springframework. beans.factory.xml.XmlB ...
- socket执行accept函数时没有进入阻塞状态,而是陷入了无限循环
接着前两天继续看<VC深入详解>的网络编程部分,这次我快速看了遍书上的函数以及套接字C-S模型,然后自己从0开始写了个简单的服务端,结果发现一直在输出 而明明我还没有写客户端程序,由于打印 ...
- java代码----substring()方法是按索引截取字符串。。。下标0开始
总结:按照索引substring(2,5);意思是从字符串的索引为2开始(包括)到第6个字符(不包括)的位置的截取部分 package com.s.x; //substring public clas ...
- Thread之六:线程创建方法
1.继承Thread类,重写该类的run()方法. 2.实现Runnable接口,并重写该接口的run()方法,该run()方法同样是线程执行体,创建Runnable实现类的实例,并以此实例作为Thr ...
- [Java.Web][Servlet]常用请求头
response.setStatus(302); response.setHeader("location", "/day04/1.html"); 这段代码可以 ...
- 【洛谷】P1196 银河英雄传说(并查集)
题目描述 公元五八○一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山压顶 ...
- CDH5.10 添加kafka服务
简介: CDH的parcel包中是没有kafka的,kafka被剥离了出来,需要从新下载parcel包安装.或者在线安装,但是在线安装都很慢,这里使用下载parcel包离线安装的方式. PS:kafk ...
- Python Twisted系列教程18:Deferreds 全貌
作者:dave@http://krondo.com/deferreds-en-masse/ 译者: Cheng Luo 你可以从”第一部分 Twist理论基础“开始阅读:也可以从”Twisted 入 ...