一、實現功能
①需要獲取到文件的大小然後進行合適單位的展示;
②將獲取到的文件大小統一單位;
③能夠進行文件大小與設置數值比較;
④兩個文件比較大小;
二、核心腳本
/***
* Title:"三維可視化" 項目
* 主題:文件操作【核心層】
* Description:
* 功能:
* 1、將文件大小(字節)轉換爲最適合的顯示方式
* 2、將文件大小(字節)統一轉換爲K\M\G爲單位
* 3、將所有文件與設置的數值比較文件的大小
* 4、比較兩個文件的大小
* Date:2020
* Version:0.1版本
* Author:Coffee
* Modify Recoder:
*/
using System;
using System.IO;
namespace Kernal
{
public class FileOPC
{
/// <summary>
/// 獲取到文件的大小
/// </summary>
/// <param name="fileInfo">文件信息</param>
/// <returns>返回文件的大小(單位是字節)</returns>
public static long GetFileSize(FileInfo fileInfo)
{
return fileInfo.Length;
}
/// <summary>
/// 將文件大小(字節)轉換爲最適合的顯示方式
/// </summary>
/// <param name="size">文件字節</param>
/// <returns>返回轉換後的字符串</returns>
public static string ConvertFileSize(long size)
{
string result = "0KB";
int filelength = size.ToString().Length;
if (filelength < 4)
result = size + "byte";
else if (filelength < 7)
result = Math.Round(Convert.ToDouble(size / 1024d), 2) + "KB";
else if (filelength < 10)
result = Math.Round(Convert.ToDouble(size / 1024d / 1024), 2) + "MB";
else if (filelength < 13)
result = Math.Round(Convert.ToDouble(size / 1024d / 1024 / 1024), 2) + "GB";
else
result = Math.Round(Convert.ToDouble(size / 1024d / 1024 / 1024 / 1024), 2) + "TB";
return result;
}
/// <summary>
/// 將文件大小(字節)統一轉換爲K爲單位
/// </summary>
/// <param name="size">文件字節</param>
/// <returns>返回轉換後的字符串</returns>
public static double ConvertFileSizeToK(long size)
{
double result = 0;
if (size > 0)
{
result = Math.Round(Convert.ToDouble(size / 1024d), 2);
}
return result;
}
/// <summary>
/// 將文件大小(字節)統一轉換爲M爲單位
/// </summary>
/// <param name="size">文件字節</param>
/// <returns>返回轉換後的字符串</returns>
public static double ConvertFileSizeToM(long size)
{
double result = 0;
if (size > 0)
{
result = Math.Round(Convert.ToDouble(size / 1024d / 1024), 2);
}
return result;
}
/// <summary>
/// 將文件大小(字節)統一轉換爲G爲單位
/// </summary>
/// <param name="size">文件字節</param>
/// <returns>返回轉換後的字符串</returns>
public static double ConvertFileSizeToG(long size)
{
double result = 0;
if (size > 0)
{
result = Math.Round(Convert.ToDouble(size / 1024d / 1024 / 1024), 2);
}
return result;
}
/// <summary>
/// 將所有文件與設置的數值比較文件的大小
/// </summary>
/// <param name="fileInfo">當前的文件信息</param>
/// <param name="curSetFileSize">當前設置的文件大小</param>
/// <returns>返回比較的結果(true:表示滿足)</returns>
public static bool CompareFileSize(FileInfo fileInfo, double curSetFileSize, CompareFileDir compareFileDir)
{
bool success = false;
double curFileSize = FileOPC.ConvertFileSizeToM(fileInfo.Length);
switch (compareFileDir)
{
case CompareFileDir.大於:
if (curFileSize > curSetFileSize)
{
success = true;
}
break;
case CompareFileDir.小於:
if (curFileSize < curSetFileSize)
{
success = true;
}
break;
case CompareFileDir.等於:
if (curFileSize == curSetFileSize)
{
success = true;
}
break;
case CompareFileDir.大於等於:
if (curFileSize >= curSetFileSize)
{
success = true;
}
break;
case CompareFileDir.小於等於:
if (curFileSize <= curSetFileSize)
{
success = true;
}
break;
default:
break;
}
return success;
}
/// <summary>
/// 比較兩個文件的大小
/// </summary>
/// <param name="fileInfo">當前的文件信息</param>
/// <param name="curSetFileSize">當前設置的文件大小</param>
/// <returns>返回比較的結果(true:表示文件1比文件2大)</returns>
public static bool CompareTwoFileSize(FileInfo fileInfo1, FileInfo fileInfo2, CompareFileDir compareFileDir)
{
bool success = false;
double curFile1Size = FileOPC.ConvertFileSizeToM(fileInfo1.Length);
double curFile2Size = FileOPC.ConvertFileSizeToM(fileInfo2.Length);
switch (compareFileDir)
{
case CompareFileDir.大於:
if (curFile1Size > curFile2Size)
{
success = true;
}
break;
case CompareFileDir.小於:
if (curFile1Size < curFile2Size)
{
success = true;
}
break;
case CompareFileDir.等於:
if (curFile1Size == curFile2Size)
{
success = true;
}
break;
case CompareFileDir.大於等於:
if (curFile1Size >= curFile2Size)
{
success = true;
}
break;
case CompareFileDir.小於等於:
if (curFile1Size <= curFile2Size)
{
success = true;
}
break;
default:
break;
}
return success;
}
}//Class_end
//比較文件的方向
public enum CompareFileDir
{
大於, //大於
小於, //小於
等於, //等於
大於等於, // 大於等於
小於等於, //大於等於
}
}
三、使用方法
①引用命名空間
using Kernal;
②直接使用對應的類名+方法即可