文件系統(tǒng)

首先,如果你的文件是應(yīng)用運行的一部分忘衍,圖片,聲音資源等卿城,就放在應(yīng)用的Bundle里枚钓,它將成為應(yīng)用代碼簽名的一部分,對它的移動和修改都會造成應(yīng)用無法啟動瑟押,這里并不是儲存用戶文檔的好地方搀捷。在OSX上,這樣的資源文件被復(fù)制到Resuorces文件夾中多望,在IOS上則放在根目錄下嫩舟。

NSFileManager

//這里獲取的是共享的文件管理器對象
var fileManager = NSFileManager.defaultManager()
//如果你想對文件進行像復(fù)制或移動之類的操作時,在這樣的操作完成時NSFilerManager會給其代理發(fā)送一個消息怀偷,這時就不能用共享對象了家厌,而是要建立一個自己的對象
fileManager = NSFileManager()
//將自己設(shè)置為代理,當(dāng)操作完成時獲得提示
fileManager.delegate = self
let DesktopURL = "/Users/exialym/Desktop/"
let folderURL = NSURL.fileURLWithPath(DesktopURL)
//這個方法返回文件夾內(nèi)所有文件的NSURL
let folderContents = try? fileManager.contentsOfDirectoryAtURL(folderURL, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions())
//如果你要獲取大量文件的屬性椎工,你可以在contentOfDirectoryAtURL的includingPropertiesForKeys參數(shù)里傳入要查的屬性的鍵
if (folderContents != nil) {
    for file in folderContents! {
        //要獲取的屬性的值
        let attr = [NSURLFileSizeKey,NSURLContentModificationDateKey]
        //NSURL有這么個獲取各種屬性的方法
        let attrDic = try? file.resourceValuesForKeys(attr)
        if (attrDic != nil) {
            let fileSize = (attrDic![NSURLFileSizeKey]) as? NSNumber
            let fileLastDate = attrDic![NSURLContentModificationDateKey] as? NSDate
            print("\(file):\(fileSize)+\(fileLastDate)")
        }
    }
}

有時需要臨時儲存一些文件

//如果你要臨時儲存什么文件可以申請一個臨時目錄饭于,這個目錄在系統(tǒng)認為磁盤空間不夠時會被自動清除,所以要小心
let temporaryDirectoryPath = NSTemporaryDirectory()
let temporaryDirectoryURL = NSURL(fileURLWithPath: temporaryDirectoryPath)
//這里返回給你的是一個可以在其中儲存文件的臨時目錄维蒙,最好在里面新建個文件夾再存東西
print(temporaryDirectoryURL)

文件操作

//創(chuàng)建新目錄
let newDirectoryURL = NSURL.fileURLWithPath(DesktopURL + "/newFile/a/b")
//withIntermediateDirectories為true時就可以創(chuàng)建新文件夾和它的子文件夾
let didCreate = try? fileManager.createDirectoryAtURL(newDirectoryURL, withIntermediateDirectories: true, attributes: nil)
didCreate != nil ? print("Dir:success") : print("Dir:failed")
//創(chuàng)建文件掰吕,路徑里記得包含文件名
let myData = NSData(contentsOfURL: NSURL(string: "http://www.feng.com/favicon.ico")!)
fileManager.createFileAtPath(DesktopURL + "/newFile/a/aa", contents: myData, attributes: nil)
//復(fù)制
_ = try? fileManager.copyItemAtPath(DesktopURL + "/newFile/a/aa", toPath: DesktopURL + "/newFile/a/b/aa")
//移動
_ = try? fileManager.moveItemAtPath(DesktopURL + "/newFile/a/b/aa", toPath: DesktopURL + "/newFile/aa")
//刪除文件,直接刪除木西,不是放入廢紙簍
_ = try? fileManager.removeItemAtPath(DesktopURL + "/newFile/a/aa")

自動獲取一些特定的目錄

//有一些常用目錄用來存儲文件畴栖,比如文檔,桌面等八千,還有Caches吗讶。我們可以通過這個方法來獲取這些文件夾的路徑這個方法返回一個URL的數(shù)組
//比如你想獲取桌面的路徑,這樣獲取路徑在開啟和不開啟沙盒的情況下是不同的
//不開啟時你獲取到的是正常的:file:///Users/exialym/Desktop/
//開啟時獲取的就是:
//file:///Users/exialym/Library/Containers/edu.bupt.exialym.VideoPlayer/Data/Desktop/
let urls = fileManager.URLsForDirectory(NSSearchPathDirectory.DesktopDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask)
print(urls)

沙盒

IOS強制沙盒恋捆,OSX可選照皆。
在沙盒模式下,應(yīng)用訪問任何包外的文件都需要授權(quán)沸停,可以在Capabilities中配置一些常用的權(quán)限膜毁,設(shè)置是否可以訪問音樂,下載等文件夾。有一個比較特殊的叫User Selected File Access瘟滨,可以配置讓用戶選擇可以訪問的文件候醒。
用戶使用NSOpenPanel和NSSavePanel。它們是標(biāo)準(zhǔn)的打開和保存窗口杂瘸。在應(yīng)用放在沙盒以后倒淫,這兩個面板由PowerBox而非你的應(yīng)用顯示。

let panel = NSOpenPanel()
panel.canChooseDirectories = true
panel.canChooseFiles = true
panel.beginWithCompletionHandler { (result:Int) -> Void in
    self.playerView.player = AVPlayer(URL: panel.URL!)
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末败玉,一起剝皮案震驚了整個濱河市敌土,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌运翼,老刑警劉巖返干,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異血淌,居然都是意外死亡矩欠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門六剥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晚顷,“玉大人,你說我怎么就攤上這事疗疟「媚” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵策彤,是天一觀的道長栓袖。 經(jīng)常有香客問我,道長店诗,這世上最難降的妖魔是什么裹刮? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮庞瘸,結(jié)果婚禮上捧弃,老公的妹妹穿的比我還像新娘。我一直安慰自己擦囊,他們只是感情好违霞,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瞬场,像睡著了一般买鸽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贯被,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天眼五,我揣著相機與錄音妆艘,去河邊找鬼。 笑死看幼,一個胖子當(dāng)著我的面吹牛批旺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播诵姜,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼朱沃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了茅诱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤搬卒,失蹤者是張志新(化名)和其女友劉穎瑟俭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體契邀,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡摆寄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坯门。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片微饥。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖古戴,靈堂內(nèi)的尸體忽然破棺而出欠橘,到底是詐尸還是另有隱情,我是刑警寧澤现恼,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布肃续,位于F島的核電站,受9級特大地震影響叉袍,放射性物質(zhì)發(fā)生泄漏始锚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一喳逛、第九天 我趴在偏房一處隱蔽的房頂上張望瞧捌。 院中可真熱鬧,春花似錦润文、人聲如沸姐呐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽皮钠。三九已至,卻和暖如春赠法,著一層夾襖步出監(jiān)牢的瞬間麦轰,已是汗流浹背乔夯。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留款侵,地道東北人末荐。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像新锈,于是被迫代替她去往敵國和親甲脏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 文件系統(tǒng)作為被所有進程使用的基本資源之一妹笆,在macOS和iOS中主要用于處理數(shù)據(jù)文件块请、應(yīng)用程序以及與操作系統(tǒng)自身相...
    pro648閱讀 2,664評論 0 9
  • 一個基本的計算機系統(tǒng)由“硬件”和“軟件”組成,一臺Linux設(shè)備拳缠,主要的組成如下圖所示: 一般情況下墩新,我們所說的L...
    時待吾閱讀 1,636評論 0 16
  • 21.1文件系統(tǒng)的概念 21.1.1文件系統(tǒng)和文件 ■文件系統(tǒng)是操作系統(tǒng)中管理持久性數(shù)據(jù)的子系統(tǒng),提供數(shù)據(jù)存儲和訪...
    龜龜51閱讀 721評論 0 4
  • 29.1 引言 本章中我們要討論另一個常用的應(yīng)用程序:NFS(網(wǎng)絡(luò)文件系統(tǒng))窟坐,它為客戶程序提供透明的文件訪問海渊。NF...
    張芳濤閱讀 976評論 0 4
  • 【0420 晨讀感悟】 細回想,對工作充滿激情的話哲鸳,大概在剛參加工作頭兩年臣疑;如果說干勁十足的話,應(yīng)該是在職務(wù)提拔之...
    清水05閱讀 549評論 0 1