iOS学习-沙盒路径总结、文件管理NSFileManager总结

//

//  ViewController.m

//  沙盒操作

//

//  Created by mncong on 15/11/26.

//  Copyright © 2015年 mancong. All rights reserved.

//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

//到达沙盒根路径

[self getHomePath];

//获取Document路径

[self getDocumentsPath];

//获取Library目录路径

[self getLibraryPath];

//获取Library中的Cache路径

[self getCachePath];

//获取temp路径

[self getTempPath];

//NSString类路径的处理

[self dealWithPath];

//NSData处理

[self dealWithData];

//文件管理

[self dealWithNSaFileManager];

//获取文件中文件和文件列表

[self getDirectorys];

}

- (void)getHomePath

{

NSString * homePath = NSHomeDirectory();

NSLog(@"app_home: %@",homePath);

}

- (NSString *)getDocumentsPath

{

NSArray * pathsArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSLog(@"%@",pathsArr);

NSString * documentsPath = [pathsArr lastObject];

NSLog(@"app_documentsPath: %@",documentsPath);

return documentsPath;

}

- (void)getLibraryPath

{

NSArray * pathsArr = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

NSString * documentsPath = [pathsArr lastObject];

NSLog(@"app_documentsPath: %@",documentsPath);

}

- (void)getCachePath

{

NSArray * pathsArr = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString * cachePath = [pathsArr lastObject];

NSLog(@"cachePath: %@",cachePath);

}

- (void)getTempPath

{

NSString * tempPath = NSTemporaryDirectory();

NSLog(@"app_tempPath: %@",tempPath);

}

- (void)dealWithPath

{

//操作的路径

NSString * path = @"/Users/apple/testfile.text";

//获取此路径的各个组成部分

NSArray * arr = [path pathComponents];

NSLog(@"%@",arr);

//提取此路径的最后一个组成部分

NSString * lastComponent = [path lastPathComponent];

NSLog(@"%@",lastComponent);

//删除路径的最后一个组成部分

NSString * deleteLastComponent = [path stringByDeletingLastPathComponent];

NSLog(@"%@",deleteLastComponent);

//将path添加到先邮路径的末尾

NSString * addPathToPath = [path stringByAppendingPathComponent:path];

NSLog(@"%@",addPathToPath);

//去除路径最后部分的扩展名

NSString * extension = [path pathExtension];

NSLog(@"%@",extension);

//删除路径最后部分的扩展名

NSString * deletePathExtension = [path stringByDeletingPathExtension];

NSLog(@"%@",deletePathExtension);

//路径最后部分追加扩展名(注意:方法已经拼接了一个点号了,不要再加了)

NSString * appendExtension = [path stringByAppendingPathExtension:@"jpg"];

NSLog(@"%@",appendExtension);

}

- (void)dealWithData

{

//1.NSString与NSData转换

NSString * string1 = @"1234abcd";

NSData * data1 = [string1 dataUsingEncoding:NSUTF8StringEncoding];

NSLog(@"data1: %@",data1);

NSString * string2 = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];

NSLog(@"string2: %@",string2);

//2.NSData与UIImage

//拼接在本工程下的路径

NSString * path = [[NSBundle mainBundle] bundlePath];

NSString * name = [NSString stringWithFormat:@"1.jpg"];

NSString * finalPath = [path stringByAppendingPathComponent:name];

//把路径改为NSData类型

NSData * imageData = [NSData dataWithContentsOfFile:finalPath];

//获取图片

UIImage * image = [UIImage imageWithData:imageData];

//显示在UIimageView上

UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 200)];

imageView.image = image;

[self.view addSubview:imageView];

}

- (void)dealWithNSaFileManager

{

NSError * error;

//创建文件管理

NSFileManager * fileManager = [NSFileManager defaultManager];

//指向文档目录

NSString * documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

NSLog(@"documentsDirectory: %@",documentsDirectory);

//创建一个目录

#warning format之后什么意思 以及后面的参数

[[NSFileManager defaultManager] createDirectoryAtPath:[NSString stringWithFormat:@"%@/myFolder",NSHomeDirectory()] withIntermediateDirectories:YES attributes:nil error:&error];

//1.创建一个文件

NSString * filePath = [documentsDirectory stringByAppendingPathComponent:@"file1.txt"];

NSLog(@"filePath: %@",filePath);

NSString * str = @"需要写入的字符串";

//写入文件

[str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];

//显示文件目录的内容

NSLog(@"documentsDirectory: %@",[fileManager contentsOfDirectoryAtPath:documentsDirectory error:&error]);

//2.对一个文件重命名

NSString * filePath2 = [documentsDirectory stringByAppendingPathComponent:@"file2.text"];

NSLog(@"%@",filePath2);

if ([fileManager moveItemAtPath:filePath toPath:filePath2 error:&error] != YES)

NSLog(@"Unable to mnove file: %@",error.localizedDescription);

NSLog(@"DocumentsDirectory: %@",[fileManager contentsOfDirectoryAtPath:documentsDirectory error:&error]);

//3.删除一个文件

if ([fileManager removeItemAtPath:filePath2 error:&error] != YES)

NSLog(@"Unable to delete file:%@",error.localizedDescription);

NSLog(@"Documentsdirectory: %@",[fileManager contentsOfDirectoryAtPath:documentsDirectory error:&error]);

}

- (void)getDirectorys

{

NSFileManager * fileManager = [NSFileManager defaultManager];

NSArray * documentsPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString * documentsDirectory = [documentsPaths objectAtIndex:0];

NSError * error = nil;

NSArray * fileList = [NSArray array];

fileList = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:&error];

NSLog(@"fileList: %@",fileList);

//列出给定一个文件夹里的所有子文件夹名

NSMutableArray * dirArray = [NSMutableArray array];

BOOL isDir = NO;

for (NSString * file in fileList) {

NSString * path = [documentsDirectory stringByAppendingPathComponent:file];

[fileManager fileExistsAtPath:path isDirectory:(&isDir)];

if (isDir) {

[dirArray addObject:file];

}

isDir = NO;

}

NSLog(@"Every Thing in the Dir: %@",fileList);

NSLog(@"All folders: %@",dirArray);

}

@end

时间: 2024-08-23 13:34:14

iOS学习-沙盒路径总结、文件管理NSFileManager总结的相关文章

iOS获取沙盒路径并写入文件

.h文件中 //你需要的数据集合形式@property(nonatomic,strong)NSMutableArray *groupArray;//数组@property(nonatomic,strong)NSMutableDictionary *allDict;//字典 //判断沙盒里面是否有需要的对象+(ShareDataHandleModel*)shareDataHandleModel; //获取沙盒文件中document路径+(NSString*)documentPath; //通过文件

iOS 获取沙盒路径方法

//获取家目录路径的函数: NSString *homeDir = NSHomeDirectory(); //获取Documents目录路径的方法: NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docDir = [paths objectAtIndex:0]; //获取Caches目录路径的方法: NSArray *paths

iOS学习7:iOS沙盒(sandBox)机制(一)之获取沙盒路径及目录说明(转)

转:http://my.oschina.net/joanfen/blog/151145 一.iOS沙盒机制 iOS的应用只能访问为该应用创建的区域,不可访问其他区域,应用的其他非代码文件都存在此目录下,包括图片,属性文件plist,bundle,nib文件等,这块区域称之为沙盒(sandBox). 每个应用都有属于自己的存储空间,即沙盒 应用只能访问自己的沙盒,不可访问其他区域 如果应用需要进行文件操作,则必须将文件存放在沙盒中,尤其是数据库文件,在电脑上操作时,可以去访问,但是如果要装在真机上

iOS沙盒(sandbox)机制及获取沙盒路径

一. 每个iOS应用SDK都被限制在“沙盒”中,“沙盒”相当于一个加了仅主人可见权限的文件夹,苹果对沙盒有以下几条限制. (1).应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒. (2).应用程序间不能共享数据,沙盒里的文件不能被复制到其他应用程序文件夹中,也不能把其他应用程序文件夹中的文件复制到沙盒里. (3).苹果禁止任何读.写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中. (4).沙盒根目录里有三个文件夹:Documents,一般应该把应用程序的数据文件存到

iOS之沙盒机制和如何获取沙盒路径

iOS APP可以在自己的沙盒里读写文件,但是,不可以访问其他APP的沙盒.每一个APP都是一个信息孤岛,相互是不可以进行通信的,唯独可以通过URL Scheme.沙盒里面的文件可以是照片.声音文件.文本.属性列表等. 沙盒机制简介 沙盒简述: 每一个APP都有一个存储空间,就是沙盒. APP之间不能相互通信. 沙盒根目录结构:Documents.Library.temp. 简述一下Documents.Library.temp的区别: Documents:用于存储用户数据,iTunes备份和恢复

iOS沙盒(sandbox)机制及获取沙盒路径

一.每个iOS应用SDK都被限制在沙盒中,沙盒相当于一个加了仅主人可见权限的文件夹,苹果对沙盒有以下几条限制. (1).应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒. (2).应用程序间不能共享数据,沙盒里的文件不能被复制到其他应用程序文件夹中,也不能把其他应用程序文件夹中的文件复制到沙盒里. (3).苹果禁止任何读.写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中. (4).沙盒根目录里有三个文件夹: Documents:一般应该把应用程序的数据文件存到这个文件

iOS开发之获取沙盒路径

iOS开发之沙盒机制(SandBox)具体解说了沙盒的一些机制.在开发中,我们须要对沙盒进行操作.所以我们须要获取到沙盒路径. 沙盒里的目录包含Documents.Library.tmp.这三个目录的作用请点击这里.接下来我们来解说怎样获取Documents.Library.tmp的路径. 获取沙盒根文件夹 获取沙盒根文件夹.直接调用NSHomeDirectory(): //获取沙盒根文件夹 NSString *directory = NSHomeDirectory(); NSLog(@"dir

IOS 沙盒路径的机制

1.前往沙盒目录:在Finder上点->前往->前往文件夹,输入/Users/username/Library/Application Support/iPhone Simulator/  前往 2.沙盒结构:每个沙盒含有3个文件夹:Documents, Library 和 tmp. Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录Library:存储程序的默认设置或其它状态信息: Library/Caches:存放缓

iOS开发寻找沙盒路径

寻找沙盒路径方法:(网上帖子的方法不行,可以尝试第一种) 1.直接打印NSHomeDirectory() 即 NSLog(@"%@", NSHomeDirectory()); 对于NSHomeDirectory()官方的描述是: 对于mac打印出来后就会得到沙盒的路径,例如我得到的打印结果是: /Users/zzz/Library/Developer/CoreSimulator/Devices/80CA1C69-E887-4F00-8508-7A9F590204A4/data/Cont