การใช้งานคลาส 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³ ตามลำดับ