in HuggingChat-Mac/LocalSTT/AudioModelManager.swift [399:433]
func getDirectorySize(selectedModel: String) -> String {
var totalSize: Int64 = 0
if localModels.contains(selectedModel) {
let modelFolder = URL(fileURLWithPath: localModelPath).appendingPathComponent(selectedModel)
guard let enumerator = FileManager.default.enumerator(at: modelFolder, includingPropertiesForKeys: [.fileSizeKey, .isDirectoryKey]) else {
print("Failed to create enumerator for \(modelFolder)")
return "--"
}
for case let fileURL as URL in enumerator {
do {
let resourceValues = try fileURL.resourceValues(forKeys: [.fileSizeKey, .isDirectoryKey])
if let isDirectory = resourceValues.isDirectory, isDirectory {
continue
}
if let fileSize = resourceValues.fileSize {
totalSize += Int64(fileSize)
}
} catch {
print("Error getting size of file \(fileURL): \(error)")
}
}
}
let formatter = ByteCountFormatter()
formatter.allowedUnits = [.useGB, .useMB]
formatter.countStyle = .file
let sizeInBytes = Int(exactly: totalSize) ?? Int.max
let formattedSize = formatter.string(fromByteCount: Int64(sizeInBytes))
return formattedSize
}