基于NSString处理文件的高级类
基于NSString处理文件的高级类
我已经把处理文件的类简化到了变态的程度,如果你还有更简洁的方法,请告知我,谢谢!
使用详情:
源码:
// // NSString+File.h // MasterCode // // Created by YouXianMing on 14/11/28. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import <Foundation/Foundation.h> #import <UIKit/UIKit.h>@interface NSString (File)/*** 沙盒文件路径** /Documents* /Library/Caches* /Library/Preferences* /tmp** @return 沙盒文件路径*/ - (NSString *)path;/*** bundel文件路径** @return bundel文件路径*/ - (NSString *)bundleFile;/*** bundle图片** @return bundle图片*/ - (UIImage *)bundleImage;/*** 检测文件或者文件夹是否存在** @return YES 存在, NO 不出在*/ - (BOOL)exist;/*** 创建文件夹** @return YES 成功, NO 失败*/ - (BOOL)createFolder;/*** 是否是文件夹** @return YES 是, NO 不是*/ - (BOOL)isDirectory;/*** 复制到这个路径** @param path 目的路径** @return YES 成功, NO 失败*/ - (BOOL)copyTo:(NSString *)path;/*** 移动到这个路径** @param path 目的路径** @return YES 成功, NO 失败*/ - (BOOL)moveTo:(NSString *)path;/*** 删除文件** @return YES 成功, NO 失败*/ - (BOOL)remove;/*** 遍历出文件夹中的文件** @return 所有文件夹路径*/ - (NSArray *)enumeratorFolder;/*** 遍历出文件夹并在block中查看** @param block 可以查看path*/ - (void)enumeratorFolderEach:(void (^)(NSString *path))block;/*** 文件信息** @return 文件信息*/ - (NSDictionary *)fileInfo;/*** 文件大小** @return 文件大小*/ - (int)fileSize;@end
// // NSString+File.m // MasterCode // // Created by YouXianMing on 14/11/28. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import "NSString+File.h"@implementation NSString (File)- (NSString *)path {return [NSHomeDirectory() stringByAppendingPathComponent:self]; }- (NSString *)bundleFile {return [[NSBundle mainBundle] pathForResource:selfofType:nil]; }- (UIImage *)bundleImage {return [UIImage imageNamed:self]; }- (BOOL)exist {return [[NSFileManager defaultManager] fileExistsAtPath:[NSHomeDirectory() stringByAppendingPathComponent:self]isDirectory:nil]; }- (BOOL)createFolder {return [[NSFileManager defaultManager] createDirectoryAtPath:[NSHomeDirectory() stringByAppendingPathComponent:self]withIntermediateDirectories:YESattributes:nilerror:nil]; }- (BOOL)isDirectory {BOOL isDirectory = NO;[[NSFileManager defaultManager] fileExistsAtPath:[NSHomeDirectory() stringByAppendingPathComponent:self]isDirectory:&isDirectory];return isDirectory; }- (BOOL)copyTo:(NSString *)path {return [[NSFileManager defaultManager] copyItemAtPath:[NSHomeDirectory() stringByAppendingPathComponent:self]toPath:[NSHomeDirectory() stringByAppendingPathComponent:path]error:nil]; }- (BOOL)moveTo:(NSString *)path {return [[NSFileManager defaultManager] moveItemAtPath:[NSHomeDirectory() stringByAppendingPathComponent:self]toPath:[NSHomeDirectory() stringByAppendingPathComponent:path]error:nil]; }- (BOOL)remove {return [[NSFileManager defaultManager] removeItemAtPath:[NSHomeDirectory() stringByAppendingPathComponent:self]error:nil]; }- (NSArray *)enumeratorFolder {if ([self isDirectory]){NSMutableArray *storeArray = [NSMutableArray array];NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent:self];NSFileManager *localFileManager = [[NSFileManager alloc] init];NSDirectoryEnumerator *dirEnum = [localFileManager enumeratorAtPath:docsDir];NSString *file;while ((file = [dirEnum nextObject])){[storeArray addObject:[[NSHomeDirectory() stringByAppendingPathComponent:self] stringByAppendingPathComponent:file]];}return storeArray;}else{return nil;} }- (void)enumeratorFolderEach:(void (^)(NSString *path))block {if ([self isDirectory]){NSMutableArray *storeArray = [NSMutableArray array];NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent:self];NSFileManager *localFileManager = [[NSFileManager alloc] init];NSDirectoryEnumerator *dirEnum = [localFileManager enumeratorAtPath:docsDir];NSString *file;while ((file = [dirEnum nextObject])){[storeArray addObject:[self stringByAppendingPathComponent:file]];}[storeArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {block(obj);}];} }- (NSDictionary *)fileInfo {return [[NSFileManager defaultManager] attributesOfItemAtPath:[NSHomeDirectory() stringByAppendingPathComponent:self]error:nil]; }- (int)fileSize {return [[[[NSFileManager defaultManager] attributesOfItemAtPath:[NSHomeDirectory() stringByAppendingPathComponent:self]error:nil] \objectForKey:@"NSFileSize"] intValue]; }@end
转载于:https://www.cnblogs.com/YouXianMing/p/4129168.html
基于NSString处理文件的高级类相关推荐
- 基于POI的读写Excel文件的工具类
依赖的jar包: import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStrea ...
- 基于Socket的文件传输(使用CSocket类)
本软件使用MFC采用面向对象的方法实现了基于Socket的文件传输.这是原来研究生课程的结课作业,实现了Socket的发送和接收,以及读取ini配置文件等操作.使用了CSocket类 以下是当时结课作 ...
- 基于 Thingsboard 平台自定义 RPC 控制类小部件示例
基于 Thingsboard 平台自定义 RPC 控制类小部件示例 1. 小部件介绍 2. 创建小部件 3. 部件编辑器 3.1 简介 3.2 资源 / HTML / CSS 3.3 JavaScri ...
- 文件映射操作类的实现
文章目录 1 文件映射操作类的实现 1 文件映射操作类的实现 mmap_file_op.h: #ifndef QINIU_LARGEFILE_MMAPFILE_OP_H_ #define QINIU_ ...
- 快速生成NHibernate的映射文件和映射类的利器 —— codesmith软件
1. Codesmith软件简介 (1) Codesmith软件是一种基于模板的代码生成工具,在ORM中,它能帮助我们生成实体类.XML配置文件,从而简化了我们一部分的开发工作,它的使用类似于 ...
- 基于AFNetworking的封装的工具类
基于AFNetworking的封装的工具类MXERequestService // // MXERequestService.h // testAFNetWorking // // Created b ...
- linux 查找文件夹_用python打造一个基于socket的文件(夹)传输系统
这段时间在学习python,接触到了网络编程中的socket这块,加上自己在用的Linux服务器都是原生支持python的,于是乎有了个做文件传输功能程序的想法. 毕竟python语言中,有下载功能的 ...
- Laravel5中基于jQuery实现分层级的类目树结构方法
2019独角兽企业重金招聘Python工程师标准>>> Laravel5中基于jQuery实现分层级的类目树结构方法 下面时间财富网小编们来了解一下关于Laravel 5 中基于 j ...
- 基于springboot的文件上传功能的实现
基于springboot的文件上传功能的实现: 前言:本人是刚学习java后端不久,所以通过记录一下平时所学知识,方便日后的复习,如果有出错的地方,还望包含. 1.使用的工具是idea,和spring ...
最新文章
- jQuery 图片剪裁插件初探之 Jcrop
- linux中的定时,linux中的定时任务
- 【Java框架】 Hibernate与Mybatis对比
- BIO-NIO-AIO
- java 旋转图片_Java实现图片翻转以及任意角度旋转
- Yarn的资源调度与隔离
- Windows 7下的Excel 2010同时打开多个独立的窗口
- SpringBoot文件上传异常之提示The temporary upload location xxx is not valid
- 模块调用时对参数值的更改
- Castle IOC容器构建配置详解(二)
- zngnqfxtuubuosmo
- 国军标GJB150三防试验(霉菌+盐雾+湿热)
- linux 忘记了密码,Linux忘记密码的解救方法
- dialog 弹窗关闭事件
- webview 边距_如何使用javascript删除Android webview中的内置边距
- 数据库设计各阶段任务
- 单片空间后方交会程序c语言,摄影测量实习报告-单片空间后方交会
- TVM: End-to-End Optimization Stack for Deep Learning
- MBA提前面试:商学院看重软实力
- 如何用python更改图片的像素
热门文章
- aes ios php,AES算法在PHP和Android和iOS上有所不同
- 30秒的PHP代码片段(1)数组 - Array
- 构建第一个Spring Boot2.0应用之集成dubbo上---环境搭建(九)
- ****** 四 ******、软设笔记【数据结构】-排序、插入排序、选择排序
- 【spring】spring的事务传播性 hibernate/jpa等的事务隔离性
- bzoj1625[Usaco2007 Dec]宝石手镯*
- php 生日提醒程序
- 使用tensorflow object detection API 训练自己的目标检测模型 (二)labelImg的安装配置过程
- paramiko上传下载
- Final Cut Pro X中如何使音视频片段能够自由拖动