NSFileManager管理檔案和目錄

2021-07-09 19:52:55 字數 4295 閱讀 5700

>相對路徑:不以斜線開頭的路徑都是相對路徑。比如,abc.m代表的就是當前路徑嚇得abc.m檔案,再如:codes/test.m代表當前路徑下codes目錄下的test.m檔案。相對路徑要以「當前路徑」為基礎路徑,隨著當前路徑的不同,同乙個相對路徑實際代表的檔案可能發生變化,在終端視窗輸入pwd命令,即可看到當前路徑

>絕對路徑:以斜線(代表根目錄)開頭的路徑就是絕對路徑,絕對路徑是唯一的,他代表的檔案或者目錄總是固定的。比如:/user/abc,該目錄代表更目錄下uses目錄下的abc子目錄。

除此之外,在mac os x 中還包括如下幾個特殊的路徑。

1、~:代表當前使用者的home目錄。比如,當前使用者為abc,那麼「~」就代表/users/abc;還可以寫成~abc。

2、.:代表當前目錄

1、訪問檔案屬性和內容:

//

// main.m

// nsfilemanager

//// created by xxt-imac on 16/2/3.

//#import int main(int argc, const char * argv)

//獲取檔案的相關屬性

nsdictionary *attrs = [fm attributesofitematpath:@"nsfilemanager" error:nil];

//獲取檔案的屬性的詳情

nslog(@"nsfilemanager的屬主賬戶:%@",[attrs fileowneraccountname]);

nslog(@"nsfilemanager:的檔案大小%llu",[attrs filesize]);

//直接獲取檔案內容

nsdata *data = [fm contentsatpath:@"nsfilemanager"];

//直接將nsdata的資料用utf-8的格式轉換字串

nsstring *content = [[nsstring alloc]initwithdata:data encoding:nsutf8stringencoding];

nslog(@"----------輸出檔案內容-----");

nslog(@"%@",content);

}return 0;

}

輸出:

2016-02-03 09:55:35.383 nsfilemanager[1074:422794] nsfilemanager是否存在:1

2016-02-03 09:55:35.383 nsfilemanager[1074:422794] nsfilemanager:是否存在1

2016-02-03 09:55:35.383 nsfilemanager[1074:422794] nsfilemanager是否為目錄:0

2016-02-03 09:55:35.383 nsfilemanager[1074:422794] nsfilemanager是可讀檔案:1

2016-02-03 09:55:35.383 nsfilemanager[1074:422794] nsfilemanager是否為可寫檔案:1

2016-02-03 09:55:35.383 nsfilemanager[1074:422794] nsfilemanager是否為可執行性檔案:1

2016-02-03 09:55:35.383 nsfilemanager[1074:422794] nsfilemanager是否為可刪除檔案:1

2016-02-03 09:55:37.197 nsfilemanager[1074:422794] --nsfilemanagertest.m所在路徑的完整路徑元件為:--

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] macintosh hd,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] 使用者,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] xxt,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] 資源庫,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] developer,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] xcode,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] deriveddata,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] nsfilemanager-fszedtoibnvnrablwjwjlukdpkfx,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] build,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] products,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] debug,

2016-02-03 09:55:37.198 nsfilemanager[1074:422794] nsfilemanager,

2016-02-03 09:55:37.199 nsfilemanager[1074:422794] nsfilemanager的屬主賬戶:xxt

2016-02-03 09:55:37.199 nsfilemanager[1074:422794] nsfilemanager:的檔案大小23984

2016-02-03 09:55:37.199 nsfilemanager[1074:422794] ----------輸出檔案內容-----

2016-02-03 09:55:37.199 nsfilemanager[1074:422794] (null)

program ended with exit code: 0

2、建立,刪除,移動,複製的操作

nsfilemanager為建立,山粗,移動,複製檔案或者目錄提供了許多方法。有根據路徑進行操作的,還有用url進行操作的,這裡我就拿路徑舉例子。

//建立目錄

[fm createdirectoryatpath:@"lyx/abc"

//該引數指定如果父目錄不存在,則建立父目錄

withintermediatedirectories:yes

attributes:nil

error:nil];

nsstring *contentt = @"我要好好學習";

//建立乙份檔案

[fm createfileatpath:@"hahahah.txt" contents:[contentt datausingencoding:nsutf8stringencoding] attributes:nil];

//複製乙份新檔案

[fm copyitematpath:@"hahahah.txt" topath:@"copy.txt" error:nil];

3、檢視目錄包含的內容

#import int main(int argc, const char * argv) 

//獲取指定目錄下所有檔案和資料夾對應的列舉器

nsdirectoryenumerator *direnum = [fm enumeratoratpath:@"."];

nsstring *file;

//列舉direnum中包含的每個檔案

while (file = [direnum nextobject])

}//獲取當前目錄下的所有子目錄

// nsarray *subarr = [fm subpathsofdirectoryatpath:@"." error:nil];

//這兩個方法基本一樣,所以留乙個就行

nsarray *subarr = [fm subpathsatpath:@"."];

for (nsstring *item in subarr)

}return 0;

}

NSFileManager 檔案管理器

nsfilemanager 檔案管理器,它是單例 nsuserdefaults 也是單例 nsfilemanager 是對本地沙盒檔案進行管理,比如建立資料夾,移動檔案,拷貝檔案,刪除檔案等操作 建立檔案管理器單例物件 nsfilemanager filemanager nsfilemanager ...

管理檔案和目錄 NSFileManager

檔案或目錄是使用檔案的路徑名的唯一標識。相對路徑是相對於當前目錄的路徑名,每個路徑名都是乙個nsstring物件,它既可以是相對路徑,也可以是完整的路徑。完整路徑也稱為絕對路徑,以斜線 開始,斜線實際上就是乙個目錄,為根目錄。特殊的代字元作為使用者主目錄的縮寫。linda表示 使用者linda主目錄...

OC 檔案管理器NSFileManager

nsfilemanager是乙個單例結構可以用這個類,進行建立檔案 刪除檔案 移動檔案或者獲取檔案資訊。目錄與檔案建立 int main int argc,const char argv else 建立檔案 nsstring str 今天oc最後一天!nsdata data str datausin...