mirror of
https://github.com/dotnetcore/Util.git
synced 2026-10-26 09:39:38 +08:00
移动部分文件位置
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
namespace Util.FileStorage;
|
||||
|
||||
/// <summary>
|
||||
/// 文件大小
|
||||
/// </summary>
|
||||
public readonly struct FileSize {
|
||||
/// <summary>
|
||||
/// 文件字节长度
|
||||
/// </summary>
|
||||
private readonly long _size;
|
||||
|
||||
/// <summary>
|
||||
/// 初始化文件大小
|
||||
/// </summary>
|
||||
/// <param name="size">文件大小</param>
|
||||
/// <param name="unit">文件大小单位</param>
|
||||
public FileSize( long size, FileSizeUnit unit = FileSizeUnit.Byte ) {
|
||||
_size = GetSize( size, unit );
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取文件大小
|
||||
/// </summary>
|
||||
private static long GetSize( long size, FileSizeUnit unit ) {
|
||||
switch ( unit ) {
|
||||
case FileSizeUnit.K:
|
||||
return size * 1024;
|
||||
case FileSizeUnit.M:
|
||||
return size * 1024 * 1024;
|
||||
case FileSizeUnit.G:
|
||||
return size * 1024 * 1024 * 1024;
|
||||
default:
|
||||
return size;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 文件字节长度
|
||||
/// </summary>
|
||||
public long Size => _size;
|
||||
|
||||
/// <summary>
|
||||
/// 获取文件大小,单位:字节
|
||||
/// </summary>
|
||||
public int GetSize() {
|
||||
return Util.Helpers.Convert.ToInt( Size );
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取文件大小,单位:K
|
||||
/// </summary>
|
||||
public double GetSizeByK() {
|
||||
return Util.Helpers.Convert.ToDouble( _size / 1024.0, 2 );
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取文件大小,单位:M
|
||||
/// </summary>
|
||||
public double GetSizeByM() {
|
||||
return Util.Helpers.Convert.ToDouble( _size / 1024.0 / 1024.0, 2 );
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取文件大小,单位:G
|
||||
/// </summary>
|
||||
public double GetSizeByG() {
|
||||
return Util.Helpers.Convert.ToDouble( _size / 1024.0 / 1024.0 / 1024.0, 2 );
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 输出描述
|
||||
/// </summary>
|
||||
public override string ToString() {
|
||||
if ( _size >= 1024 * 1024 * 1024 )
|
||||
return $"{GetSizeByG()} {FileSizeUnit.G.Description()}";
|
||||
if ( _size >= 1024 * 1024 )
|
||||
return $"{GetSizeByM()} {FileSizeUnit.M.Description()}";
|
||||
if ( _size >= 1024 )
|
||||
return $"{GetSizeByK()} {FileSizeUnit.K.Description()}";
|
||||
return $"{_size} {FileSizeUnit.Byte.Description()}";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace Util.FileStorage;
|
||||
|
||||
/// <summary>
|
||||
/// 文件大小单位
|
||||
/// </summary>
|
||||
public enum FileSizeUnit {
|
||||
/// <summary>
|
||||
/// 字节
|
||||
/// </summary>
|
||||
[Description( "B" )]
|
||||
Byte,
|
||||
/// <summary>
|
||||
/// K字节
|
||||
/// </summary>
|
||||
[Description( "KB" )]
|
||||
K,
|
||||
/// <summary>
|
||||
/// M字节
|
||||
/// </summary>
|
||||
[Description( "MB" )]
|
||||
M,
|
||||
/// <summary>
|
||||
/// G字节
|
||||
/// </summary>
|
||||
[Description( "GB" )]
|
||||
G
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
namespace Util.FileStorage;
|
||||
|
||||
/// <summary>
|
||||
/// 文件信息
|
||||
/// </summary>
|
||||
public class FileStorageInfo {
|
||||
/// <summary>
|
||||
/// 文件标识
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// 文件路径
|
||||
/// </summary>
|
||||
public string FilePath { get; set; }
|
||||
/// <summary>
|
||||
/// 文件名,包含扩展名
|
||||
/// </summary>
|
||||
public string FileName { get; set; }
|
||||
/// <summary>
|
||||
/// 文件名,不包含扩展名
|
||||
/// </summary>
|
||||
public string FileNameWithoutExtension { get; set; }
|
||||
/// <summary>
|
||||
/// 扩展名
|
||||
/// </summary>
|
||||
public string Extension { get; set; }
|
||||
/// <summary>
|
||||
/// 文件大小
|
||||
/// </summary>
|
||||
public long Size { get; set; }
|
||||
/// <summary>
|
||||
/// 文件大小描述
|
||||
/// </summary>
|
||||
public string SizeDescription { get; set; }
|
||||
/// <summary>
|
||||
/// 文件访问地址
|
||||
/// </summary>
|
||||
public string Url { get; set; }
|
||||
/// <summary>
|
||||
/// 缩略图访问地址
|
||||
/// </summary>
|
||||
public string ThumbUrl { get; set; }
|
||||
}
|
||||
@@ -3,3 +3,4 @@ global using System.Threading.Tasks;
|
||||
global using System.Collections.Generic;
|
||||
global using System.Threading;
|
||||
global using System.IO;
|
||||
global using System.ComponentModel;
|
||||
Reference in New Issue
Block a user