一、利用NSString类进行文件路径的处理

文件路径格式:

NSString *path=@"/Uesrs/apple/testfile.txt"

常用方法汇总:

1.获得组成此路径的各个组成部分,结果:("/","User","apple","testfile.txt")

  1. - (NSArray *)pathComponents;

2.提取路径的最后一个组成部分,结果:testfile.txt

  1. - (NSString *)lastPathComponent;

3.删除路径的最后一个组成部分,结果:/Users/apple

  1. - (NSString *)stringByDeletingLastPathCpmponent;

4.将path添加到先邮路径的末尾,结果:/Users/apple/testfile.txt/app.txt

  1. - (NSString *)stringByAppendingPathConmponent:(NSString *)str;

5.去路径最后部分的扩展名,结果:text

  1. - (NSString *)pathExtension;

6.删除路径最后部分的扩展名,结果:/Users/apple/testfile

  1. - (NSString *)stringByDeletingPathExtension;

7.路径最后部分追加扩展名,结果:/User/apple/testfile.txt.jpg

  1. - (NSString *)stringByAppendingPathExtension:(NSString *)str;

二、NSData二进制数据类

NSData是用来包装数据的,NSData存储的是二进制数据,屏蔽了数据之间的差异,文本、音频、图像等数据都可用NSData来存储。

NSData的用法

1.NSString与NSData互相转换

NSData-> NSString

  1. NSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding];

NSString->NSData

  1. NSString *aString = @"1234abcd";
  2. NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding];

将data类型的数据,转成UTF8的数据

  1. +(NSString *)dataToUTF8String:(NSData *)data
  2. {
  3. NSString *buf = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  4. return [buf autorelease];
  5. }

将string转换为指定编码

  1. +(NSString *)changeDataToEncodinString:(NSData *)data encodin:(NSStringEncoding )encodin{
  2. NSString *buf = [[[NSString alloc] initWithData:data encoding:encodin] autorelease];
  3. return buf;
  4. }

2. NSData 与 UIImage

NSData->UIImage

UIImage *aimage = [UIImage imageWithData: imageData];

//例:从本地文件沙盒中取图片并转换为NSData

  1. NSString *path = [[NSBundle mainBundle] bundlePath];
  2. NSString *name = [NSString stringWithFormat:@"ceshi.png"];
  3. NSString *finalPath = [path stringByAppendingPathComponent:name];
  4. NSData *imageData = [NSData dataWithContentsOfFile: finalPath];
  5. UIImage *aimage = [UIImage imageWithData: imageData];

3.NSData与NSArray, NSDictionary

  1. +(NSString *)getLocalFilePath:(NSString *) fileName
  2. {
  3. return [NSString stringWithFormat:@"%@/%@%@", NSHomeDirectory(),@“Documents”,fileName];
  4. }

包括将NSData写进Documents目录

从Documents目录读取数据
在进行网络数据通信的时候,经常会遇到NSData类型的数据。在该数据是dictionary结构的情况下,系统没有提供现成的转换成NSDictionary的方法,为此可以通过Category对NSDictionary进行扩展,以支持从NSData到NSDictionary的转换。声明和实现如下:

  1. + (NSDictionary *)dictionaryWithContentsOfData:(NSData *)data {
  2. CFPropertyListRef list = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)data, kCFPropertyListImmutable, NULL);
  3. if(list == nil) return nil;
  4. if ([(id)list isKindOfClass:[NSDictionary class]]) {
  5. return [(NSDictionary *)list autorelease];
  6. }
  7. else {
  8. CFRelease(list);
  9. return nil;
  10. }
  11. }

三、文件管理常用方法

NSFileManager

创建一个文件并写入数据

  1. - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;

从一个文件中读取数据

  1. - (NSData *)contentsAtPath:(NSString *)path;

scrPath路径上的文件移动到dstPath路径上,注意这里的路径是文件路径而不是目录

  1. - (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **) error;

scrPath路径上的文件复制到dstPath路径上

  1. - (BOOL)copyItemAtPath:(NSString *)scrPath toPath:(NSString *)dstPath error:(NSError **) error;

比较两个文件的内容是否一样

  1. - (BOOL)contentsEqualAtPath:(NSString *)path1 andPath:(NSString *)path2;

文件是否存在

  1. - (BOOL)fileExistsAtPath:(NSString *)path;

移除文件

  1. - (BOOL)removeItemAtPath:(NSString *)path error:(NSError **) error;

创建文件管理

  1. NSFileManager *fileManager = [NSFileManager defaultManager];
  2. NSString *path = [NSHomeDirectory( ) stringByAppendingPathComponent:@"holyBible.txt"];                                                  

将字符串转成NSData类型

  1. NSString *text = @"abcdefg";
  2. NSData *data = [text dataUsingEncoding: NSUTF8StringEncoding];

写入文件

  1. BOOL success = [fileManager createFileAtPath:path contents:data attributes:nil];

创建文件夹

  1. NSString *filePath = [path stringByAppendingPathComponent:@"holyBible.txt"];
  2. NSString *contect = @"abcdefg";
  3. BOOL success = [fm createFileAtPath:filePath contents:[content dataUsingEncoding: NSUTF8StringEncoding] attributes:nil];

NSFileManager-读取内容

  1. NSData *fileData = [fileManager contentsAtPath:filePath];
  2. NSString *content = [[NSString alloc] initWithData:fileData dataUsingEncoding: NSUTF8StringEncoding];

NSData-读取内容
  NSString *filePath = [path stringByAppendingPathComponent:@"holyBible.txt"];

  1. NSData *data = [NSData dataWithContentOfFile:filePath];

NSString-读取内容

  1. NSString *filePath = [path stringByAppendingPathComponent:@"holyBible.txt"];
  2. NSString *content = [[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

移动、复制文件

移动文件(重命名)

  1. NSString *toPath = [NSHomeDirectory( ) stringByAppendingPathComponent:@"hellogod/New Testament.txt"];
  2. [fm createDirectoryAtPath:[toPath stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:nil];
  3. NSError *error;
  4. BOOL isSuccess = [fm moveItemAtPath:filePath toPath:toPath error:&error];

复制文件(重命名)

  1. NSString *copyPath = [NSHomeDirectory( ) stringByAppendingPathComponent:@"备份/Old Testament.txt"];
  2. [fm createDirectoryAtPath:[toPath stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:nil];
  3. BOOL success = [fm copyItemAtPath:toPath toPath:toPath error:nil];

删除文件、获取文件大小

判断文件是否存在和删除文件

  1. if([fm fileExistsAtPath]) {
  2. if ([fm removeItemAtPath:copyPath]) {
  3. NSLog(@"remove success");
  4. }
  5. }

获取文件大小

  1. NSFileManager *fileManager = [NSFileManager defaultManager];                        

获得文件的属性字典

  1. NSDictionary *attrDic = [fileManager attributesOfItemAtpath:sourcePath error:nil];
  2. NSNumber *fileSize = [attrDic objectForKey:NSFileSize];

获取目录文件信息

  1. NSFileManager *fileManager = [NSFileManager defaultManager];
  2. NSString *enuPath = [NSHomeDirectoty( ) stringByAppendingPathComponent:@"Test"];
  3. NSDictionaryEnumerator *dirEnum = [fileManager enumeratorAtPath:enuPath];
  4. NSString *path = nil;
  5. while ((path = [dirEnum nextObject]} != nil){
  6. NSLog(@"%@",path);
  7. }

NSString,NSData,NSFileManager常用方法的更多相关文章

  1. NSString / NSData / char* 类型之间的转换

    转自网络: NSString / NSData / char* 类型之间的转换 1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; ch ...

  2. 【转】NSString / NSData / char* 类型之间的转换

    原文 :http://www.cnblogs.com/pengyingh/articles/2341880.html NSString 转换成NSData 对象 NSData* xmlData = [ ...

  3. 转:NSString / NSData / char* 类型之间的转换

    1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; char fnameStr[10]; memcpy(fnameStr, [fname ...

  4. IOS之NSString NSData char 相互转换

    转自:http://blog.csdn.net/xialibing103/article/details/8513312 1.NSString转化为UNICODE String:(NSString*) ...

  5. NSData和NSString 、 NSFileManager

    1 NSData和NSMutableData的基本使用 1.1 问题 NSData类是IOS提供的用于以二进制的形式操作文件数据的类,NSData有两个常用的属性length和bytes,length ...

  6. NSData、NSString 、 NSFileManager

      1 NSData和NSMutableData的基本使用 1.1 问题 NSData类是IOS提供的用于以二进制的形式操作文件数据的类,NSData有两个常用的属性length和bytes,leng ...

  7. 01-IOSCore - NSString、NSFileManager、NSBundle、StringAndObjectConvert

    模型 1 将数据存储到硬盘,将硬盘上的数据在读回内存 2 文件存储: NSFileHandle 对文件的读写 NSData 二进制数据 NSString 表示文件路径 NSFileManager(对文 ...

  8. NSString和NSMutableString常用方法+NSArray常用代码 (转)

    常见的NSString和NSMutableString方法: NSString方法: [plain] view plaincopy   +(id) stringWithContentsOfFile:p ...

  9. iOS 字符串NSString 的一些常用方法

    一.字符串创建 1. NSString *str1 = [NSString new]; 2. NSString *str2 = @"字符串内容"; 二.字符串拼接 1. NSStr ...

随机推荐

  1. 合理使用线程池 ThreadPool.QueueUserWorkItem()

    //==>自建线程 new Thread(() => { //线程任务 Console.WriteLine(Thread.CurrentThread.ManagedThreadId); } ...

  2. tapable事件流插件

    tapable Webpack本质上是一种事件流的机制,它的工作流程就是将各个插件串联起来,而实现这一切的核心就是Tapable,webpack中最核心的负责编译的Compiler和负责创建bundl ...

  3. mockjs

    首先还是那句话,进来的GodBoy and GoodGirl 不妨看完再离开.  一个走在路上的前端攻城狮-along 一.mock的由来 mock有“愚弄.欺骗”之意,在前端领域,mock可以理解为 ...

  4. 学习笔记flexbox新布局

    FlexBox简称“弹性盒子”,除了用于实现弹性布局,还可以用来居中内容,改变标记中的源码顺序.首先说明IE9及以下浏览器不支持FlexBox. .flex{ display:flex; flex:1 ...

  5. 关于tr:hover变色的问题

    最近在给table里面的tr标签添加高亮背景色显示的时候,遇到一个坑,HTML结构如下: <tr> <td></td> <td></td> ...

  6. <Android 应用 之路> MPAndroidChart~BarChart

    简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和IOS两种,这里我们暂时 ...

  7. C#打印代码运行时间

    使用以下方法可以准确的记录代码运行的耗时. System.Diagnostics.Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); / ...

  8. Python爬虫教程-29-验证码识别-Tesseract-OCR

    本篇是关于验证码识别问题,也是Python爬虫笔记的一个结尾,使用 Tesseract Python爬虫教程-29-验证码识别-Tesseract-OCR 常见反爬虫手段: 验证码 1.简单图片,扭曲 ...

  9. 十九、CSS如何引入字体

    将相应的字体放入新建的文件夹,然后在Css文件里面如下图引入 @font-face { font-family: FZLTCXHJW; src: url(../font/FZYouHJW_Xian_a ...

  10. Java基础之this关键字的作用

    this关键字主要存在三种应用 1.this调用本类中的属性,也就是说调用类中的成员变量: 2.this调用本类中的其他方法: 3.this调用本类中的其他构造方法,调用时要放在构造方法的首行,否则会 ...