macOS 獲取文件夾大小

macOS 獲取文件夾大小

獲取文件夾大小的擴展如下:

extension URL {var fileSize: Int? { // in bytesdo {let val = try self.resourceValues(forKeys: [.totalFileAllocatedSizeKey, .fileAllocatedSizeKey])return val.totalFileAllocatedSize ?? val.fileAllocatedSize} catch {print(error)return nil}}
}
extension FileManager {func folderSize(_ dir: URL) -> Int? {if let enumerator = self.enumerator(at: dir, includingPropertiesForKeys: [.totalFileAllocatedSizeKey, .fileAllocatedSizeKey], options: [], errorHandler: { (_, error) -> Bool inprint(error)return false}) {var bytes = 0for case let url as URL in enumerator {bytes += url.fileSize ?? 0}return bytes} else {return nil}}
}

但是返回來的是字節數,如果要轉換成 MB 或者 GB,需要自己做轉換,那再來擴展吧。

extension FileManager {func convertBytesToReadableUnit(_ bytes: Int64) -> String {let formatter = ByteCountFormatter()formatter.countStyle = .binaryformatter.allowedUnits = [.useAll]formatter.includesUnit = trueformatter.isAdaptive = truereturn formatter.string(fromByteCount: bytes)}
}let bytes: Int64 = 123456789
let readableUnit = FileManager.default.convertBytesToReadableUnit(bytes)
print(readableUnit) // Output: "117.7 MB"

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207044.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207044.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207044.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

來自Sui的溫馨建議:保護您的Web3私鑰

當您安裝一個錢包并創建Sui賬戶時,錢包包含一個公鑰和一個私鑰。保護好私鑰的安全非常重要,從而可以保護您的Sui資產,包括錢包中的任何tokens。 公鑰加密技術是幾十年前開發的,是當今互聯網上大多數安全交易的基礎,包…

Navicat Premium 16 for Mac/Windows:高效的數據庫開發工具

Navicat Premium 16是一款功能強大的數據庫開發工具,為開發人員提供了全面的工具和功能,幫助他們更高效地進行數據庫開發和管理。不論是初學者還是專業開發人員,Navicat Premium 16都能滿足他們的需求,并提供直觀、易用的界面。 …

【深度學習】AlexNet網絡實現貓狗分類

【深度學習】AlexNet網絡實現貓狗分類 AlexNet簡介 AlexNet是一種卷積神經網絡(Convolutional Neural Network,CNN)模型,它在2012年的ImageNet圖像分類挑戰賽中取得了重大突破,引發了深度學習在計算機視覺領域的熱潮…

為“異常”努力是值得的

異常是OO語言處理錯誤的方式,在C中,鼓勵使用異常。侯捷再書中談起異常,“十年前撰寫“未將異常考慮在內的”函數是為一種美好實踐,而今我們致力于寫出“異常安全碼”。”可見異常安全的重要。 說起異常安全,首先就要是異常的出現…

Leetcode—213.打家劫舍II【中等】

2023每日刷題&#xff08;五十二&#xff09; Leetcode—213.打家劫舍II 算法思路 實現代碼 class Solution { public:// 左閉右開int rob1(vector<int>& nums, int start, int end) {int n nums.size();int f0 0, f1 0, new_f 0;for(int i start; i < end…

pytorch學習入門之 Variable(變量)

Variable(變量) autograd.Variable 是包的核心類. 它包裝了張量, 并且支持幾乎所有的操作. 一旦你完成了你的計算, 你就可以調用 .backward() 方法, 然后所有的梯度計算會自動進行. 你還可以通過 .data 屬性來訪問原始的張量, 而關于該 variable(變量)的梯度會被累計到 .…

初識 OpenCV

初識 OpenCV 簡介 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一個涵蓋了數百種計算機視覺算法的開源算法庫。 OpenCV 具有模塊化結構&#xff0c;這意味著該軟件包包含多個共享或靜態庫。其中包含以下模塊&#xff1a; Core functionality (core…

機器學習硬件十年:性能變遷與趨勢

本文分析了機器學習硬件性能的最新趨勢&#xff0c;重點關注不同GPU和加速器的計算性能、內存、互連帶寬、性價比和能效等指標。這篇分析旨在提供關于ML硬件能力及其瓶頸的全面視圖。本文作者來自調研機構Epoch&#xff0c;致力于研究AI發展軌跡與治理的關鍵問題和趨勢。 &…

【送書活動四期】被GitHub 要求強制開啟 2FA 雙重身份驗證,我該怎么辦?

記得是因為fork了OpenZeppelin/openzeppelin-contracts的項目&#xff0c;之后就被GitHub 要求強制開啟 2FA 雙重身份驗證了&#xff0c;一拖再拖&#xff0c;再過幾天帳戶操作將受到限制了&#xff0c;只能去搞一下了 目錄 2FA是什么為什么要開啟 2FA 驗證GitHub 欲在整個平臺…

消息隊列 - RabbitMQ

消息隊列 - RabbitMQ 1. 初識 MQ1.1 同步調用1.2 異步調用1.3.技術選型 2. RabbitMQ2.1 安裝2.2 收發信息2.2.1 交換機(Exchange)2.2.2 隊列2.2.3 綁定關系2.2.4 發送消息 2.3 數據隔離 1. 初識 MQ 微服務一旦拆分&#xff0c;必然涉及到服務之間的相互調用&#xff0c;之前講…

MySQL六 | 存儲引擎

目錄 存儲引擎 存儲引擎特點 存儲引擎選擇 Innodb與MyISAM區別 存儲引擎 默認存儲引擎:InnoDB show engines;#展示當前數據庫支持的存儲引擎 存儲引擎特點 特點InnoDBMyISAMMemory存儲限制64TB有有事務安全支持--鎖機制行鎖表鎖表鎖Btree鎖支持支持 支持 Hash索引--支…

編譯 Android gradle-4.6-all.zip 報錯問題記錄

編譯 Android gradle-4.6-all.zip 報錯問題記錄 方法一&#xff1a;替換資源&#xff1a;方法二&#xff1a;修改源方法三&#xff1a;修改版本 編譯時候無法下載 gradle-4.6-all Downloading https://services.gradle.org/distributions/gradle-4.6-all.zip 方法一&#xf…

《一念關山》熱度破萬,愛奇藝古裝賽道出盡風頭

?劉詩詩重回古裝劇、新式武俠公路片、質感細膩的鏡頭美學......看點滿滿的《一念關山》頻頻登上熱搜&#xff0c;俘獲了大批觀眾的心。 開播首日熱度就刷新了愛奇藝2023年站內紀錄&#xff0c;《一念關山》作為2023年愛奇藝在古裝賽道的收官之作&#xff0c;口碑和熱度兼收。…

Linux內核-標準IO和系統IO的區別

概念 標準IO&#xff1a;指的是C語言實現的文件操作的函數 系統IO&#xff08;文件IO&#xff09;&#xff1a;指的是linux或windows或unix&#xff0c;實現文件操作的函數。 為什么要有兩種IO C語言要實現跨平臺&#xff0c;所以C語言在不同操作系統中實現文件操作方式是不一…

一文詳解Java反射

文章目錄 反射是什么&#xff1f;反射的作用所有方法匯總一、加載Class對象二、加載類的構造器對象三、加載類的成員變量四、加載類的成員方法 反射是什么&#xff1f; 反射就是&#xff1a;加載類&#xff0c;并允許以編程的方式解剖類中的某個成分&#xff08;成員變量&#…

實戰:Docker Compose 下 Nginx、Java、Mysql 和 Redis 服務協同部署(包含解決瀏覽器訪問Linux部署服務器本地資源問題)

1. 背景 在該實戰中&#xff0c;我們將探討如何使用Docker Compose協同部署Nginx、Java、Mysql和Redis服務&#xff0c;實現一個視頻上傳與展示的應用。具體需求如下&#xff1a; Java應用負責上傳視頻和圖片資源到Nginx目錄下&#xff0c;作為資源服務器。Nginx服務作為靜態…

Numpy數組常用屬性匯總(第5講)

Numpy數組常用屬性匯總 (第5講) ??????? ??博主 侯小啾 感謝您的支持與信賴。?? ????????????????????????????????????????????????????????????????????????????????????…

【JavaEE進階】 Spring使用注解存儲對象

文章目錄 &#x1f334;序言&#x1f340;前置?作&#xff1a;配置掃描路徑&#x1f384;添加注解存儲 Bean 對象&#x1f333;類注解&#x1f6a9;為什么要這么多類注解&#x1f6a9;注解之間的聯系 &#x1f38b;?法注解 Bean&#x1f6a9;?法注解需要配合類注解使? ?總…

探索AIGC未來:CPU源碼優化、多GPU編程與中國算力瓶頸與發展

★人工智能&#xff1b;大數據技術;AIGC;Turbo;DALLE 3;多模態大模型&#xff1b;MLLM&#xff1b;LLM&#xff1b;Agent&#xff1b;Llama2&#xff1b;國產GPU芯片&#xff1b;GPU;CPU&#xff1b;高性能計算機&#xff1b;邊緣計算&#xff1b;大模型顯存占用&#xff1b;5G…

如何夸張孩子

你剛才很努力啊&#xff01;——表揚努力盡管艱難&#xff0c;但你一直沒有放棄——表揚耐心和堅持你做事情的態度非常不錯——表揚態度你在_____上進步了很多&#xff01;——表揚細節這個方法真有新意&#xff01;——表揚創意你和小伙伴合作得真棒&#xff01;——表揚合作精…