2024-10-15 20:34:05 +04:00

30 lines
848 B
Swift

import Foundation
public func fileSize(_ path: String, useTotalFileAllocatedSize: Bool = false) -> Int64? {
/*if useTotalFileAllocatedSize {
let url = URL(fileURLWithPath: path)
if let values = (try? url.resourceValues(forKeys: Set([.isRegularFileKey, .fileAllocatedSizeKey]))) {
if values.isRegularFile ?? false {
if let fileSize = values.fileAllocatedSize {
return Int64(fileSize)
}
}
}
}*/
var value = stat()
if lstat(path, &value) == 0 {
if (value.st_mode & S_IFMT) == S_IFLNK {
return 0
}
if useTotalFileAllocatedSize {
return Int64(value.st_blocks) * Int64(value.st_blksize)
}
return value.st_size
} else {
return nil
}
}