using Admin.Core.Common.Extensions; namespace Admin.Core.Common.Files { /// /// 文件大小 /// public struct FileSize { /// /// 初始化文件大小 /// /// 文件大小 /// 文件大小单位 public FileSize(long size, FileSizeUnit unit = FileSizeUnit.Byte) { switch (unit) { case FileSizeUnit.K: Size = size * 1024; break; case FileSizeUnit.M: Size = size * 1024 * 1024; break; case FileSizeUnit.G: Size = size * 1024 * 1024 * 1024; break; default: Size = size; break; } } /// /// 文件字节长度 /// public long Size { get; } /// /// 获取文件大小,单位:字节 /// public long GetSize() { return Size; } /// /// 获取文件大小,单位:K /// public double GetSizeByK() { return (Size / 1024.0).ToDouble(2); } /// /// 获取文件大小,单位:M /// public double GetSizeByM() { return (Size / 1024.0 / 1024.0).ToDouble(2); } /// /// 获取文件大小,单位:G /// public double GetSizeByG() { return (Size / 1024.0 / 1024.0 / 1024.0).ToDouble(2); } /// /// 输出描述 /// public override string ToString() { if (Size >= 1024 * 1024 * 1024) return $"{GetSizeByG()} {FileSizeUnit.G.ToDescription()}"; if (Size >= 1024 * 1024) return $"{GetSizeByM()} {FileSizeUnit.M.ToDescription()}"; if (Size >= 1024) return $"{GetSizeByK()} {FileSizeUnit.K.ToDescription()}"; return $"{Size} {FileSizeUnit.Byte.ToDescription()}"; } } }