1. 程式人生 > >Swift-對檔案和資料夾操作

Swift-對檔案和資料夾操作

class Common: NSObject {

    
    /**
     某個檔案的大小 單位:MB
     
     - parameter filePath: 檔案路徑
     
     - returns: 檔案大小
     */
    static func fileSizeAtPath(filePath:String) -> Double{
        let manager = NSFileManager.defaultManager()
        var fileSize : Double = 0
        do{
           fileSize = try manager.attributesOfItemAtPath(filePath)["NSFileSize"] as! Double
        }catch{
        
        }
        return fileSize/1024/1024;
    }
    
    /**
     遍歷所有子目錄,計算檔案大小
     
     - parameter forderPath: 目錄路徑
     
     - returns: 返回檔案大小
     */
    static func forderSizeAtPath(forderPath:String) ->Double{
        let manager = NSFileManager.defaultManager()
        if !manager.fileExistsAtPath(forderPath) {
            print("檔案不存在!")
            return 0
        }
        let childFilePath = manager.subpathsAtPath(forderPath)
        var fileSize:Double = 0
        for  path in childFilePath!{
            let fileAbsolutePath = forderPath+"/"+path
            fileSize += Common.fileSizeAtPath(fileAbsolutePath)
        }
        return fileSize;
    }
    
    /**
     刪除檔案
     
     - parameter path: 檔案路徑
     */
    static func deleteFile(path:String){
        let manager = NSFileManager.defaultManager()
        do{
            try manager.removeItemAtPath(path)
        }catch{
        
        }
    }
    
    /**
     刪除資料夾下的所有檔案
     
     - parameter folderPath: 資料夾路徑
     */
    static func deleteFolder(folderPath:String){
        let manager = NSFileManager.defaultManager()
        if manager.fileExistsAtPath(folderPath) {
            print("檔案不存在!")
            return
        }
        let childFilePath = manager.subpathsAtPath(folderPath)
        for path in childFilePath! {
            let fileAbsolutePath = folderPath + "/" + path
            Common.deleteFile(fileAbsolutePath)
        }
    }
}