FileManager 文件管理用法(Swift)

此處只列出了常用的一些功能

//
//  LKFileManger.swift
// 
//
//  Created by admin on 2017/5/22.
//  Copyright ? 2017年 LK. All rights reserved.
//

import UIKit

class LKFileManger: NSObject {

    /// 單利
    static let sharedInstance: LKFileManger = LKFileManger()

    ///
    /// 獲取Documents路徑
    ///
    /// - Returns: 返回路徑
    public func getDocumentsPath() -> String{

        let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)

        let path = paths.first

        print(path!)

        return path!
    }

    /// 根據(jù)傳入的文件夾名創(chuàng)建文件夾??
    ///
    /// - Parameter directoryName: 傳入的文件夾名
    public func createDirectory(_ directoryName: String) {

        /// 獲取路徑
        let path = LKFileManger.sharedInstance.getDocumentsPath()

        /// 創(chuàng)建文件管理者
        let fileManger = FileManager.default

        /// 創(chuàng)建文件夾
        let directoryPath = path + ("/\(directoryName)")

        do {
            try fileManger.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil)
            print("文件夾創(chuàng)建成功")
        } catch let error  {
            print(error.localizedDescription)
            print("文件夾創(chuàng)建失敗")
        }
    }

    /// 根據(jù)傳入的文件名創(chuàng)建文件
    ///
    /// - Parameter fileName: 傳入的文件名
    /// - Returns: 返回文件名
    public func createFile(_ fileName: String) -> (String){

        /// 獲取路徑
        let path = LKFileManger.sharedInstance.getDocumentsPath()

        /// 創(chuàng)建文件管理者
        let fileManger = FileManager.default

        /// 創(chuàng)建文件
        let filePath = path + ("/\(fileName)")

        if !fileManger.fileExists(atPath: filePath) { /// 先判斷是否存在  不存在再創(chuàng)建

            let isSuccess = fileManger.createFile(atPath: filePath, contents: nil, attributes: nil)

            if isSuccess {
                print("文件創(chuàng)建成功")
            }else {
                print("文件創(chuàng)建失敗")
            }
        }

        return filePath
    }

    /// 寫(xiě)入文件
    ///
    /// - Parameters:
    ///   - data: 要寫(xiě)入的數(shù)據(jù)
    ///   - filePath: 要寫(xiě)入的文件路徑
    /// - Returns: 是否寫(xiě)入成功
    public func writeFile(_ data: AnyObject,  _ filePath: String) -> Bool {

        return  data.write(toFile: filePath, atomically: true)
    }

    /// 讀取文件內(nèi)容
    ///
    /// - Parameter filePath: 要讀取的文件路徑
    /// - Returns: 返回文件中數(shù)據(jù)
    public func readFileContent(_ filePath: String) -> AnyObject {

        /// 因?yàn)槲业捻?xiàng)目是存的數(shù)組 所以我返回的數(shù)組
        return NSArray(contentsOfFile: filePath) ?? []
    }



    /// 獲取文件的大小
    ///
    /// - Returns: 文件大小
    public func getFileSize(_ fileName: String) -> Double {

        let fileManger = FileManager.default

        guard fileManger.fileExists(atPath: fileName) else {
            return 0
        }

        let attr = try! fileManger.attributesOfItem(atPath: fileName)

        let fileSize = Double((attr as NSDictionary).fileSize())

        return fileSize/1024/1024
    }

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子掩宜,更是在濱河造成了極大的恐慌,老刑警劉巖灵汪,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)褐桌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)象迎,“玉大人荧嵌,你說(shuō)我怎么就攤上這事±剩” “怎么了啦撮?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)汪厨。 經(jīng)常有香客問(wèn)我赃春,道長(zhǎng),這世上最難降的妖魔是什么劫乱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任织中,我火速辦了婚禮,結(jié)果婚禮上衷戈,老公的妹妹穿的比我還像新娘狭吼。我一直安慰自己,他們只是感情好殖妇,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布刁笙。 她就那樣靜靜地躺著,像睡著了一般谦趣。 火紅的嫁衣襯著肌膚如雪疲吸。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天前鹅,我揣著相機(jī)與錄音磅氨,去河邊找鬼。 笑死嫡纠,一個(gè)胖子當(dāng)著我的面吹牛烦租,可吹牛的內(nèi)容都是我干的延赌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼叉橱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼挫以!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起窃祝,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤掐松,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后粪小,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體大磺,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年探膊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杠愧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逞壁,死狀恐怖流济,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腌闯,我是刑警寧澤绳瘟,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站姿骏,受9級(jí)特大地震影響糖声,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜分瘦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一姨丈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧擅腰,春花似錦、人聲如沸翁潘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拜马。三九已至渗勘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間俩莽,已是汗流浹背旺坠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扮超,地道東北人取刃。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓蹋肮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親璧疗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坯辩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,286評(píng)論 25 707
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)崩侠,斷路器漆魔,智...
    卡卡羅2017閱讀 134,701評(píng)論 18 139
  • 我本是世間俗物改抡,有幸得你一瞥,從此化錦成鐵系瓢。 我本以為可以與你比肩看這洪荒盡頭阿纤,看這蒼穹無(wú)跡,卻未料到你眼中竟除了...
    沐森讀書(shū)閱讀 889評(píng)論 0 0
  • 人在社會(huì)中地位八拱,身份阵赠,學(xué)歷,收入等等可以有高有低肌稻,但是作為同一屬性的個(gè)體-人清蚀,本質(zhì)上都是一樣的,這就需要我們互...
    顥寧齋閱讀 7,970評(píng)論 37 123
  • 我時(shí)常會(huì)迷茫爹谭,這個(gè)明星到底是因?yàn)檠菁己没鹌饋?lái)的枷邪,還是僅僅靠逗趣和頭大吸了一批死忠粉。 他的身上有一種煙火氣般的吸引...
    幾多深與淺閱讀 473評(píng)論 7 3