一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - iOS開發中對文件目錄的訪問及管理的基本方法小結

iOS開發中對文件目錄的訪問及管理的基本方法小結

2020-12-25 15:51doctorhsly IOS

這篇文章主要介紹了iOS開發中對文件目錄的訪問及管理的基本方法小結,代碼基于傳統的Objective-C,需要的朋友可以參考下

文件目錄的訪問

最簡單的:(由于是沙盒關系,沒有文件夾概念的)

復制代碼 代碼如下:

UIImage* image = [UIImage imageNamed:@"11.png"];


這個已經是相對app里面打包好的路徑,不需要額外添加路徑。

 


還有一種就是需要指定文件路徑的:

需要用到NSBundle.

復制代碼 代碼如下:

[[NSBundle mainBundle] resourcePath],這個就是程序的打包后的路徑。

 

如果需要指定路徑,就要這樣寫:

你也可自己拼接:

復制代碼 代碼如下:

NSString* path = [NSStringstringWithFormat:@"%@/%@/%@",[[NSBundlemainBundle] resourcePath],@"document",@"aaa.txt"];


或者直接:

復制代碼 代碼如下:

NSString* path = [[NSBundle mainBundle] pathForResource:@"aaa" ofType:@"png"];

 

一般來說應用程序有3個目錄

Documents,Library,tmp

現在apple不允許把大數據保存在documents文檔,如果你想把視頻什么的保存在documents文檔里面,需要備份到icould比較麻煩。

一般窩的做法就是保存在Library的caches目錄下面(不知道是否合理:))

tmp目錄的話,保存一些臨時文件,在退出程序的時候你可以把里面的緩存內容刪除。

 


在應用程序中獲得自己的documents目錄:

復制代碼 代碼如下:

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString * documentDirectory = [paths objectAtIndex:0];


在上面的基礎上,獲得一個完整的文件路徑和名字:

復制代碼 代碼如下:

NSString * file = [documentDirectory stringByAppendingPathComponent:@"file1.txt"];


這就可以用file來創建,讀取,和寫入文件。

 

 

文件目錄管理
下面來看一些常用的文件目錄管理方法
1、常見的NSFileManager文件方法

復制代碼 代碼如下:


-(NSData *)contentsAtPath:path  //從一個文件讀取數據

 


-(BOOL)createFileAtPath: path contents:(NSData *)data attributes:attr  //向一個文件寫入數據


-(BOOL)removeItemAtPath:path error:err  //刪除一個文件


-(BOOL)moveItemAtPath:from toPath:to error:err  //重命名或者移動一個文件(to不能是已存在的)

-(BOOL)copyItemAtPath:from toPath:to error:err  //復制文件(to不能是已存在的)


-(BOOL)contentsEqualAtPath:path andPath:path2  //比較兩個文件的內容


-(BOOL)fileExistAtPath:path  //測試文件是否存在


-(BOOL)isReadableFileAtPath:path  //測試文件是否存在,并且是否能執行讀操作  


-(BOOL)isWriteableFileAtPath:path  //測試文件是否存在,并且是否能執行寫操作  


-(NSDictionary *)attributesOfItemAtPath:path error:err  //獲取文件的屬性  


-(BOOL)setAttributesOfItemAtPath:attr error:err  //更改文件的屬性


2.使用目錄

復制代碼 代碼如下:


-(NSString *)currentDirectoryPath  //獲取當前目錄

 


-(BOOL)changeCurrentDirectoryPath:path  //更改當前目錄


-(BOOL)copyItemAtPath:from toPath:to error:err  //復制目錄結構(to不能是已存在的)


-(BOOL)createDirectoryAtPath:path withIntermediateDirectories:(BOOL)flag attribute:attr  //創建一個新目錄


-(BOOL)fileExistAtPath:path isDirectory:(BOOL*)flag  //測試文件是不是目錄(flag中儲存結果YES/NO)


-(NSArray *)contentsOfDirectoryAtPath:path error:err  //列出目錄內容


-(NSDirectoryEnumerator *)enumeratorAtPath:path  //枚舉目錄的內容


-(BOOL)removeItemAtPath:path error:err  //刪除空目錄


-(BOOL)moveItemAtPath:from toPath:to error:err   //重命名或移動一個目錄(to不能是已存在的)


3、常用路徑工具方法

復制代碼 代碼如下:


+(NSString *)pathWithComponens:components  //根據components中的元素構造有效路徑

 


-(NSArray *)pathComponents  //析構路徑,獲得組成此路徑的各個部分


-(NSString *)lastPathComponent  //提取路徑的最后一個組成部分
-(NSString *)pathExtension  //從路徑的最后一個組成部分中提取其擴展名


-(NSString *)stringByAppendingPathComponent:path  //將path添加到現有路徑的末尾


-(NSString *)stringByAppendingPathExtension:ext  //將指定的擴展名添加到路徑的最后一個組成部分

-(NSString *)stringByDeletingLastPathComponent  //刪除路徑的最后一個組成部分


-(NSString *)stringByDeletingPathExtension  //從文件的最后一部分刪除擴展名

-(NSString *)stringByExpandingTileInPath   //將路徑中代字符擴展成用戶主目錄(~)或指定用戶的主目錄(~user)

-(NSString *)stringByresolvingSymlinksInPath  //嘗試解析路徑中的符號鏈接

-(NSString *)stringByStandardizingPath  //通過嘗試解析~、..(父目錄符號)、.(當前目錄符號)和符號鏈接來標準化路徑


4、常用的路徑工具函數

復制代碼 代碼如下:


NSString* NSUserName(void)  //返回當前用戶的登錄名

 


NSString* NSFullUserName(void)  //返回當前用戶的完整用戶名


NSString* NSHomeDirectory(void)  //返回當前用戶主目錄的路徑


NSString* NSHomeDirectoryForUser(NSString* user)  //返回用戶user的主目錄


NSString* NSTemporaryDirectory(void)  //返回可用于創建臨時文件的路徑目錄


5、常用的IOS目錄

復制代碼 代碼如下:


Documents(NSDocumentDirectory)  //用于寫入應用相關數據文件的目錄,在ios中寫入這里的文件能夠與iTunes共享并訪問,存儲在這里的文件會自動備份到云端

 

Library/Caches(NSCachesDirectory)  //用于寫入應用支持文件的目錄,保存應用程序再次啟動需要的信息。iTunes不會對這個目錄的內容進行備份

tmp(use NSTemporaryDirectory())  //這個目錄用于存放臨時文件,只程序終止時需要移除這些文件,當應用程序不再需要這些臨時文件時,應該將其從這個目錄中刪除

Library/Preferences  //這個目錄包含應用程序的偏好設置文件,使用 NSUserDefault類進行偏好設置文件的創建、讀取和修改

延伸 · 閱讀

精彩推薦
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111302021-03-15
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5272021-01-16
主站蜘蛛池模板: 香蕉在线精品一区二区 | 日本高清免费中文字幕不卡 | 成人精品在线 | 久久久伊人影院 | 亚洲精品动漫在线观看 | 日本加勒比在线播放 | 国产成人精品高清免费 | 色老板最新网站视频地址 | 四虎精品在线视频 | 日本午夜视频 | 深夜免费在线视频 | coolgay男男gayxxx| 丰满在线观看 | 精品视频久久久久 | 香蕉久久一区二区不卡无毒影院 | 亚洲欧美精品天堂久久综合一区 | 日朝欧美亚洲精品 | 草草视频在线观看 | 91噜噜噜在线观看 | 日本热妇| 好女孩韩剧免费观看 | 五月婷婷在线免费观看 | 日韩天堂视频 | 视频一区二区三区在线观看 | 精品视频99 | 亚洲大爷操 | 俺去俺去啦最新官网在线 | 国产成人精品一区二三区 | 小小水蜜桃免费影院 | 好爽好深好猛好舒服视频上 | 美女任你模 | 好大好硬好湿好紧h | 香蕉 在线播放 | 色吧导航 | 欧美精品超清在线播放 | 午夜AV国产欧美亚洲高清在线 | 欧美精品一区二区三区免费 | 欧美亚洲韩国 | 色老头影视 | 2022超帅男同gayxxx| 天干夜天天夜天干天ww |