NSString,NSData,NSFileManager常用方法
一、利用NSString类进行文件路径的处理
文件路径格式:
NSString *path=@"/Uesrs/apple/testfile.txt"
常用方法汇总:
1.获得组成此路径的各个组成部分,结果:("/","User","apple","testfile.txt")
- - (NSArray *)pathComponents;
2.提取路径的最后一个组成部分,结果:testfile.txt
- - (NSString *)lastPathComponent;
3.删除路径的最后一个组成部分,结果:/Users/apple
- - (NSString *)stringByDeletingLastPathCpmponent;
4.将path添加到先邮路径的末尾,结果:/Users/apple/testfile.txt/app.txt
- - (NSString *)stringByAppendingPathConmponent:(NSString *)str;
5.去路径最后部分的扩展名,结果:text
- - (NSString *)pathExtension;
6.删除路径最后部分的扩展名,结果:/Users/apple/testfile
- - (NSString *)stringByDeletingPathExtension;
7.路径最后部分追加扩展名,结果:/User/apple/testfile.txt.jpg
- - (NSString *)stringByAppendingPathExtension:(NSString *)str;
二、NSData二进制数据类
NSData是用来包装数据的,NSData存储的是二进制数据,屏蔽了数据之间的差异,文本、音频、图像等数据都可用NSData来存储。
NSData的用法
1.NSString与NSData互相转换
NSData-> NSString
- NSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding];
NSString->NSData
- NSString *aString = @"1234abcd";
- NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding];
将data类型的数据,转成UTF8的数据
- +(NSString *)dataToUTF8String:(NSData *)data
- {
- NSString *buf = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
- return [buf autorelease];
- }
将string转换为指定编码
- +(NSString *)changeDataToEncodinString:(NSData *)data encodin:(NSStringEncoding )encodin{
- NSString *buf = [[[NSString alloc] initWithData:data encoding:encodin] autorelease];
- return buf;
- }
2. NSData 与 UIImage
NSData->UIImage
UIImage *aimage = [UIImage imageWithData: imageData];
//例:从本地文件沙盒中取图片并转换为NSData
- NSString *path = [[NSBundle mainBundle] bundlePath];
- NSString *name = [NSString stringWithFormat:@"ceshi.png"];
- NSString *finalPath = [path stringByAppendingPathComponent:name];
- NSData *imageData = [NSData dataWithContentsOfFile: finalPath];
- UIImage *aimage = [UIImage imageWithData: imageData];
3.NSData与NSArray, NSDictionary
- +(NSString *)getLocalFilePath:(NSString *) fileName
- {
- return [NSString stringWithFormat:@"%@/%@%@", NSHomeDirectory(),@“Documents”,fileName];
- }
包括将NSData写进Documents目录
从Documents目录读取数据
在进行网络数据通信的时候,经常会遇到NSData类型的数据。在该数据是dictionary结构的情况下,系统没有提供现成的转换成NSDictionary的方法,为此可以通过Category对NSDictionary进行扩展,以支持从NSData到NSDictionary的转换。声明和实现如下:
- + (NSDictionary *)dictionaryWithContentsOfData:(NSData *)data {
- CFPropertyListRef list = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)data, kCFPropertyListImmutable, NULL);
- if(list == nil) return nil;
- if ([(id)list isKindOfClass:[NSDictionary class]]) {
- return [(NSDictionary *)list autorelease];
- }
- else {
- CFRelease(list);
- return nil;
- }
- }
三、文件管理常用方法
NSFileManager
创建一个文件并写入数据
- - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
从一个文件中读取数据
- - (NSData *)contentsAtPath:(NSString *)path;
scrPath路径上的文件移动到dstPath路径上,注意这里的路径是文件路径而不是目录
- - (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **) error;
scrPath路径上的文件复制到dstPath路径上
- - (BOOL)copyItemAtPath:(NSString *)scrPath toPath:(NSString *)dstPath error:(NSError **) error;
比较两个文件的内容是否一样
- - (BOOL)contentsEqualAtPath:(NSString *)path1 andPath:(NSString *)path2;
文件是否存在
- - (BOOL)fileExistsAtPath:(NSString *)path;
移除文件
- - (BOOL)removeItemAtPath:(NSString *)path error:(NSError **) error;
创建文件管理
- NSFileManager *fileManager = [NSFileManager defaultManager];
- NSString *path = [NSHomeDirectory( ) stringByAppendingPathComponent:@"holyBible.txt"];
将字符串转成NSData类型
- NSString *text = @"abcdefg";
- NSData *data = [text dataUsingEncoding: NSUTF8StringEncoding];
写入文件
- BOOL success = [fileManager createFileAtPath:path contents:data attributes:nil];
创建文件夹
- NSString *filePath = [path stringByAppendingPathComponent:@"holyBible.txt"];
- NSString *contect = @"abcdefg";
- BOOL success = [fm createFileAtPath:filePath contents:[content dataUsingEncoding: NSUTF8StringEncoding] attributes:nil];
NSFileManager-读取内容
- NSData *fileData = [fileManager contentsAtPath:filePath];
- NSString *content = [[NSString alloc] initWithData:fileData dataUsingEncoding: NSUTF8StringEncoding];
NSData-读取内容
NSString *filePath = [path stringByAppendingPathComponent:@"holyBible.txt"];
- NSData *data = [NSData dataWithContentOfFile:filePath];
NSString-读取内容
- NSString *filePath = [path stringByAppendingPathComponent:@"holyBible.txt"];
- NSString *content = [[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
移动、复制文件
移动文件(重命名)
- NSString *toPath = [NSHomeDirectory( ) stringByAppendingPathComponent:@"hellogod/New Testament.txt"];
- [fm createDirectoryAtPath:[toPath stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:nil];
- NSError *error;
- BOOL isSuccess = [fm moveItemAtPath:filePath toPath:toPath error:&error];
复制文件(重命名)
- NSString *copyPath = [NSHomeDirectory( ) stringByAppendingPathComponent:@"备份/Old Testament.txt"];
- [fm createDirectoryAtPath:[toPath stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:nil];
- BOOL success = [fm copyItemAtPath:toPath toPath:toPath error:nil];
删除文件、获取文件大小
判断文件是否存在和删除文件
- if([fm fileExistsAtPath]) {
- if ([fm removeItemAtPath:copyPath]) {
- NSLog(@"remove success");
- }
- }
获取文件大小
- NSFileManager *fileManager = [NSFileManager defaultManager];
获得文件的属性字典
- NSDictionary *attrDic = [fileManager attributesOfItemAtpath:sourcePath error:nil];
- NSNumber *fileSize = [attrDic objectForKey:NSFileSize];
获取目录文件信息
- NSFileManager *fileManager = [NSFileManager defaultManager];
- NSString *enuPath = [NSHomeDirectoty( ) stringByAppendingPathComponent:@"Test"];
- NSDictionaryEnumerator *dirEnum = [fileManager enumeratorAtPath:enuPath];
- NSString *path = nil;
- while ((path = [dirEnum nextObject]} != nil){
- NSLog(@"%@",path);
- }
NSString,NSData,NSFileManager常用方法的更多相关文章
- NSString / NSData / char* 类型之间的转换
转自网络: NSString / NSData / char* 类型之间的转换 1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; ch ...
- 【转】NSString / NSData / char* 类型之间的转换
原文 :http://www.cnblogs.com/pengyingh/articles/2341880.html NSString 转换成NSData 对象 NSData* xmlData = [ ...
- 转:NSString / NSData / char* 类型之间的转换
1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; char fnameStr[10]; memcpy(fnameStr, [fname ...
- IOS之NSString NSData char 相互转换
转自:http://blog.csdn.net/xialibing103/article/details/8513312 1.NSString转化为UNICODE String:(NSString*) ...
- NSData和NSString 、 NSFileManager
1 NSData和NSMutableData的基本使用 1.1 问题 NSData类是IOS提供的用于以二进制的形式操作文件数据的类,NSData有两个常用的属性length和bytes,length ...
- NSData、NSString 、 NSFileManager
1 NSData和NSMutableData的基本使用 1.1 问题 NSData类是IOS提供的用于以二进制的形式操作文件数据的类,NSData有两个常用的属性length和bytes,leng ...
- 01-IOSCore - NSString、NSFileManager、NSBundle、StringAndObjectConvert
模型 1 将数据存储到硬盘,将硬盘上的数据在读回内存 2 文件存储: NSFileHandle 对文件的读写 NSData 二进制数据 NSString 表示文件路径 NSFileManager(对文 ...
- NSString和NSMutableString常用方法+NSArray常用代码 (转)
常见的NSString和NSMutableString方法: NSString方法: [plain] view plaincopy +(id) stringWithContentsOfFile:p ...
- iOS 字符串NSString 的一些常用方法
一.字符串创建 1. NSString *str1 = [NSString new]; 2. NSString *str2 = @"字符串内容"; 二.字符串拼接 1. NSStr ...
随机推荐
- 合理使用线程池 ThreadPool.QueueUserWorkItem()
//==>自建线程 new Thread(() => { //线程任务 Console.WriteLine(Thread.CurrentThread.ManagedThreadId); } ...
- tapable事件流插件
tapable Webpack本质上是一种事件流的机制,它的工作流程就是将各个插件串联起来,而实现这一切的核心就是Tapable,webpack中最核心的负责编译的Compiler和负责创建bundl ...
- mockjs
首先还是那句话,进来的GodBoy and GoodGirl 不妨看完再离开. 一个走在路上的前端攻城狮-along 一.mock的由来 mock有“愚弄.欺骗”之意,在前端领域,mock可以理解为 ...
- 学习笔记flexbox新布局
FlexBox简称“弹性盒子”,除了用于实现弹性布局,还可以用来居中内容,改变标记中的源码顺序.首先说明IE9及以下浏览器不支持FlexBox. .flex{ display:flex; flex:1 ...
- 关于tr:hover变色的问题
最近在给table里面的tr标签添加高亮背景色显示的时候,遇到一个坑,HTML结构如下: <tr> <td></td> <td></td> ...
- <Android 应用 之路> MPAndroidChart~BarChart
简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和IOS两种,这里我们暂时 ...
- C#打印代码运行时间
使用以下方法可以准确的记录代码运行的耗时. System.Diagnostics.Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); / ...
- Python爬虫教程-29-验证码识别-Tesseract-OCR
本篇是关于验证码识别问题,也是Python爬虫笔记的一个结尾,使用 Tesseract Python爬虫教程-29-验证码识别-Tesseract-OCR 常见反爬虫手段: 验证码 1.简单图片,扭曲 ...
- 十九、CSS如何引入字体
将相应的字体放入新建的文件夹,然后在Css文件里面如下图引入 @font-face { font-family: FZLTCXHJW; src: url(../font/FZYouHJW_Xian_a ...
- Java基础之this关键字的作用
this关键字主要存在三种应用 1.this调用本类中的属性,也就是说调用类中的成员变量: 2.this调用本类中的其他方法: 3.this调用本类中的其他构造方法,调用时要放在构造方法的首行,否则会 ...