溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#如何實(shí)現(xiàn)獲取文件大小并進(jìn)行比較

發(fā)布時(shí)間:2023-03-15 14:06:28 來源:億速云 閱讀:100 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“C#如何實(shí)現(xiàn)獲取文件大小并進(jìn)行比較”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“C#如何實(shí)現(xiàn)獲取文件大小并進(jìn)行比較”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

一、實(shí)現(xiàn)功能

①需要獲取到文件的大小然后進(jìn)行合適單位的展示;

②將獲取到的文件大小統(tǒng)一單位;

③能夠進(jìn)行文件大小與設(shè)置數(shù)值比較;

④兩個(gè)文件比較大??;

二、核心腳本

/***
*	Title:"三維可視化" 項(xiàng)目
*		主題:文件操作【核心層】
*	Description:
*		功能:
*		    1、將文件大小(字節(jié))轉(zhuǎn)換為最適合的顯示方式
*		    2、將文件大小(字節(jié))統(tǒng)一轉(zhuǎn)換為K\M\G為單位
*		    3、將所有文件與設(shè)置的數(shù)值比較文件的大小
*		    4、比較兩個(gè)文件的大小
*	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è)置的數(shù)值比較文件的大小
        /// </summary>
        /// <param name="fileInfo">當(dāng)前的文件信息</param>
        /// <param name="curSetFileSize">當(dāng)前設(shè)置的文件大小</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>
        /// 比較兩個(gè)文件的大小
        /// </summary>
        /// <param name="fileInfo">當(dāng)前的文件信息</param>
        /// <param name="curSetFileSize">當(dāng)前設(shè)置的文件大小</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;

②直接使用對應(yīng)的類名+方法即可

讀到這里,這篇“C#如何實(shí)現(xiàn)獲取文件大小并進(jìn)行比較”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI