Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีดึงขนาดไฟล์ใน C#

การใช้งานคลาส FileInfo เพื่อตรวจสอบขนาดไฟล์

ใน C# คลาส FileInfo (อยู่ในเนมสเปซ System.IO) เป็นเครื่องมือหลักสำหรับจัดการไฟล์และดึงข้อมูลต่างๆ รวมถึงขนาดไฟล์ คลาสนี้ให้คุณสมบัติและเมธอดสำหรับสร้าง ลบ อ่าน และเขียนไฟล์

คุณสมบัติสำคัญของ FileInfo

  • Directory - คืนค่าออบเจ็กต์ที่แสดงไดเรกทอรีหลักของไฟล์
  • DirectoryName - คืนค่าเส้นทางเต็มของไดเรกทอรีหลัก
  • Exists - ตรวจสอบว่าไฟล์มีอยู่จริงก่อนทำการดำเนินการ
  • IsReadOnly - ดึงหรือตั้งค่าสถานะแบบอ่านอย่างเดียวของไฟล์
  • Length - ดึงขนาดไฟล์เป็นไบต์ (คุณสมบัติหลักสำหรับการหาขนาด)
  • Name - คืนค่าชื่อไฟล์

ตัวอย่างที่ 1: ดึงขนาดไฟล์เดี่ยว

using System;
using System.IO;

class Program
{
    public static void Main()
    {
        var path = @"C:\Users\Koushik\Desktop\Questions\ConsoleApp\Data.csv";
        long length = new FileInfo(path).Length;
        Console.WriteLine($"ขนาดไฟล์: {length} ไบต์");
    }
}

ผลลัพธ์:

12

ตัวอย่างที่ 2: ดึงขนาดไฟล์ทั้งหมดในโฟลเดอร์

using System;
using System.IO;

class Program
{
    public static void Main()
    {
        var path = @"C:\Users\Koushik\Desktop\Questions\ConsoleApp";
        DirectoryInfo di = new DirectoryInfo(path);
        FileInfo[] fiArr = di.GetFiles();
        
        Console.WriteLine($"ไดเรกทอรี {di.Name} มีไฟล์ดังนี้:");
        foreach (FileInfo f in fiArr)
        {
            Console.WriteLine($"ขนาดของ {f.Name} คือ {f.Length} ไบต์");
        }
    }
}

ผลลัพธ์:

ไดเรกทอรี ConsoleApp มีไฟล์ดังนี้:
ขนาดของ ConsoleApp.csproj คือ 333 ไบต์
ขนาดของ Data.csv คือ 12 ไบต์
ขนาดของ Program.cs คือ 788 ไบต์

หมายเหตุเพิ่มเติม

คุณสมบัติ Length คืนค่าเป็น long ซึ่งรองรับไฟล์ขนาดใหญ่ได้ถึง 9,223,372,036,854,775,807 ไบต์ (ประมาณ 8 เอกซาไบต์) หากต้องการแสดงผลในหน่วย KB/MB/GB สามารถหารด้วย 1024, 1024², 1024³ ตามลำดับ