C#實現(xiàn)獲取文件大小并進行比較
一、實現(xiàn)功能
①需要獲取到文件的大小然后進行合適單位的展示;
②將獲取到的文件大小統(tǒng)一單位;
③能夠進行文件大小與設置數(shù)值比較;
④兩個文件比較大?。?/p>
二、核心腳本
/***
* Title:"三維可視化" 項目
* 主題:文件操作【核心層】
* Description:
* 功能:
* 1、將文件大小(字節(jié))轉(zhuǎn)換為最適合的顯示方式
* 2、將文件大小(字節(jié))統(tǒng)一轉(zhuǎn)換為K\M\G為單位
* 3、將所有文件與設置的數(shù)值比較文件的大小
* 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>返回文件的大?。▎挝皇亲止?jié))</returns>
public static long GetFileSize(FileInfo fileInfo)
{
return fileInfo.Length;
}
/// <summary>
/// 將文件大小(字節(jié))轉(zhuǎn)換為最適合的顯示方式
/// </summary>
/// <param name="size">文件字節(jié)</param>
/// <returns>返回轉(zhuǎn)換后的字符串</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>
/// 將文件大小(字節(jié))統(tǒng)一轉(zhuǎn)換為K為單位
/// </summary>
/// <param name="size">文件字節(jié)</param>
/// <returns>返回轉(zhuǎn)換后的字符串</returns>
public static double ConvertFileSizeToK(long size)
{
double result = 0;
if (size > 0)
{
result = Math.Round(Convert.ToDouble(size / 1024d), 2);
}
return result;
}
/// <summary>
/// 將文件大小(字節(jié))統(tǒng)一轉(zhuǎn)換為M為單位
/// </summary>
/// <param name="size">文件字節(jié)</param>
/// <returns>返回轉(zhuǎn)換后的字符串</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>
/// 將文件大小(字節(jié))統(tǒng)一轉(zhuǎn)換為G為單位
/// </summary>
/// <param name="size">文件字節(jié)</param>
/// <returns>返回轉(zhuǎn)換后的字符串</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>
/// 將所有文件與設置的數(shù)值比較文件的大小
/// </summary>
/// <param name="fileInfo">當前的文件信息</param>
/// <param name="curSetFileSize">當前設置的文件大小</param>
/// <returns>返回比較的結(jié)果(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>返回比較的結(jié)果(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;
②直接使用對應的類名+方法即可
到此這篇關(guān)于C#實現(xiàn)獲取文件大小并進行比較的文章就介紹到這了,更多相關(guān)C#獲取文件大小內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WinForm下 TextBox只允許輸入數(shù)字的小例子
WinForm下 TextBox只允許輸入數(shù)字的小例子,需要的朋友可以參考一下2013-04-04
C#配置log4net實現(xiàn)將日志分類記錄到不同的日志文件中
log4net是.Net下一個非常優(yōu)秀的開源日志記錄組件,log4net記錄日志的功能非常強大,它可以將日志分不同的等級,以不同的格式,輸出到不同的媒介,下面我們就來看看C#如何配置log4net讓日志分類記錄到不同的日志文件吧2024-02-02
將excel數(shù)據(jù)轉(zhuǎn)換成dataset示例
這篇文章主要介紹了不借助第三方插件的情況下將Excel中的數(shù)據(jù)轉(zhuǎn)換成DataSet的方法,需要的朋友可以參考下2014-02-02
c#中winform根據(jù)郵箱地址和密碼一鍵發(fā)送email的實現(xiàn)
本文主要介紹了c#winform根據(jù)郵箱地址和密碼一鍵發(fā)送email的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07
C#實現(xiàn)遞歸調(diào)用的Lambda表達式
這篇文章介紹了C#實現(xiàn)遞歸調(diào)用的Lambda表達式,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06

