国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

iOS之文件管理

2019-11-08 00:13:45
字體:
來源:轉載
供稿:網友

沙盒

iOS的沙盒機制: 1、iOS的應用程序只能對自己創(chuàng)建的文件系統(tǒng)讀取文件,這個獨立、封閉、安全的空間,叫做沙盒。它一般存放著程序包文件(可執(zhí)行文件)、圖片、音頻、視頻、plist文件、sqlite數據庫以及其他文件; 2、每個應用程序都有自己的獨立的存儲空間(沙盒); 3、一般來說,應用程序之間是不可以互相訪問沙盒的; 4、模擬器的沙盒位置路徑:/User/userName/Library/application Support/iphone Simulator

沙盒的構成:當創(chuàng)建應用程序的時候,在每個沙盒中都含有三個文件,分別是Document、Library和temp。 1、Document:一般需要持久的數據都放在此目錄中,可以在當中添加子文件夾,iTunes備份和恢復的時候,會包括此目錄; 2、Library:設置程序的默認設置和其他的狀態(tài); 3、temp:創(chuàng)建臨時文件的目錄,當iOS設備重啟時,文件會被自動清除。

獲取沙盒的目錄

.h文件#import <Foundation/Foundation.h>@interface YDWSandBoxPath : NSObject// 獲取沙盒Document文件目錄+ (NSString *)getDocumentDirectory;// 獲取沙河Library文件目錄+ (NSString *)getLibraryDirectory;// 獲取沙盒Library/Caches文件目錄+ (NSString *)getCacheDirectory;// 獲取沙盒PReference文件目錄+ (NSString *)getPreferencePanesDirectory;//獲取沙盒tmp文件目錄+ (NSString *)getTmpDirectory;@end.m文件#import "YDWSandBoxPath.h"@implementation YDWSandBoxPath+ (NSString *)getDocumentDirectory { return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];}+ (NSString *)getLibraryDirectory { return [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];}+ (NSString *)getCacheDirectory { return [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];}+ (NSString *)getPreferencePanesDirectory { return [NSSearchPathForDirectoriesInDomains(NSPreferencePanesDirectory, NSUserDomainMask, YES) lastObject];}+ (NSString *)getTmpDirectory { return NSTemporaryDirectory();}@end清除緩存:在開發(fā)的過程中,遇到有用的數據,會進行緩存,當該數據不需要時,可以清除。在這里整理了幾個方法,統(tǒng)計問價的大小,清除指定文件,清除指定目錄下的全部文件等。// 根據路徑返回目錄或文件的大小+ (double)sizeWithFilePath:(NSString *)path { // 獲取文件的管理者 NSFileManager *manager = [NSFileManager defaultManager]; // 檢測路徑的合理性 BOOL direct = NO; BOOL exits = [manager fileExistsAtPath:path isDirectory:&direct]; if (!exits) { return 0; } if (direct) { NSArray *subPaths = [manager subpathsAtPath:path]; int totalSize = 0; for (NSString *subPath in subPaths) { NSString *fullSubPath = [path stringByAppendingPathComponent:subPath]; BOOL dir = NO; [manager fileExistsAtPath:path isDirectory:&dir]; if (!dir) { NSDictionary *attrs = [manager attributesOfItemAtPath:fullSubPath error:nil]; totalSize += [attrs[NSFileSize] integerValue]; } } return totalSize/(1024*1024.0); } else { NSDictionary *attrs = [manager attributesOfItemAtPath:path error:nil]; return [attrs[NSFileSize] intValue]/(1024*1024.0); }}// 得到指定目錄下的所有文件+ (NSArray *)getAllFileNames:(NSString *)dirPath { return [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:dirPath error:nil];}// 刪除指定目錄或文件+ (BOOL)clearCacheWithFilePath:(NSString *)path { return [[NSFileManager defaultManager] removeItemAtPath:path error:nil];}// 清空指定目錄下文件+ (BOOL)clearCacheFormDirectoryPath:(NSString *)dirPath { NSArray *fileArray = [YDWSandBoxPath getAllFileNames:dirPath]; BOOL flag = NO; for (NSString *fileName in fileArray) { NSString *filePath = [dirPath stringByAppendingPathComponent:fileName]; flag = [YDWSandBoxPath clearCacheWithFilePath:filePath]; if (!flag) { break; } } return flag;}

NSData

NSData存儲的是二進制數據,屏蔽了數據之間的差異,文本、音頻、圖像等數據都可用NSData來存儲;

NSData的用法: 1、NSString與NSData互相轉換 NSData –> NSString為:NSString *dataString = [[NSString alloc] initWithData:[NSData data] encoding:NSUTF8StringEncoding];

NSString –> NSData為:NSData *stringData = [[NSString string] dataUsingEncoding:NSUTF8StringEncoding];

將data類型的數據,轉成UTF8的數據:

+ (NSString*)dataToUTF8String:(NSData *)data { return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];}

將string轉換為指定編碼 :

+ (NSString *)changeDataToEncodinString:(NSData *)data encodin:(NSStringEncoding )encoding { return [[NSString alloc] initWithData:data encoding:encoding];}

2、NSData 與 UIImage NSDat –> UIImage為:UIImage *image = [UIImage imageWithData: imageData]; 例如:

- (NSData *)changePictureToNSData { NSString *filePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"ceshi.png"]]; NSData *imageData = [NSData dataWithContentsOfFile:filePath]; return imageData;}

Plist文件 ##:

數組、字典只能將BOOL、NSNumber、NSString、NSData、NSDate、NSArray、NSDictionary寫入屬性列表plist文件.

String方式添加 NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"xxx.plist"]; [[NSString string] writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];Array方式添加 NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"xxx.plist"]; [[NSArray array] writeToFile:path atomically:YES];Dictionary方式添加NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"xxx.plist"]; [[NSDictionary dictionary] writeToFile:path atomically:YES];
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 综艺| 望城县| 金溪县| 汉阴县| 迁安市| 开化县| 卢龙县| 宁波市| 永顺县| 新田县| 武穴市| 安化县| 丽水市| 阿勒泰市| 呼伦贝尔市| 镇远县| 德庆县| 嵊州市| 青铜峡市| 布拖县| 五原县| 淮滨县| 崇信县| 兖州市| 扎鲁特旗| 佳木斯市| 沁阳市| 屏东县| 上林县| 江阴市| 汉寿县| 临泽县| 玉屏| 茶陵县| 山东| 万年县| 鸡东县| 乐陵市| 炎陵县| 尚义县| 赤水市|