কম্পিউটার টিউটোরিয়াল

C#-এ ড্রাইভের ফ্রি ডিস্ক স্পেস বের করা

System.IO.DriveInfo ক্লাস ব্যবহার করে ড্রাইভের তথ্য (টোটাল সাইজ, ফ্রি স্পেস, ড্রাইভ টাইপ ইত্যাদি) পাওয়া যায়। এটি উইন্ডোজ, লিনাক্স এবং ম্যাক-এ সব জায়গায় কাজ করে।

বেসিক ব্যবহার


using System;
using System.IO;

public class DiskSpaceInfo
{
    public static void Main()
    {
        // ড্রাইভ লেটার বা পাথ দিন (যেমন "C:", "D:", "/" লিনাক্সে)
        DriveInfo drive = new DriveInfo("C");
        
        if (!drive.IsReady)
        {
            Console.WriteLine("ড্রাইভ রেডি নয় (হয় নেই বা অ্যাক্সেসযোগ্য নয়)।");
            return;
        }
        
        // বাইটে মান
        long totalSize = drive.TotalSize;
        long freeSpace = drive.AvailableFreeSpace; // বর্তমান ইউজারের জন্য উপলব্ধ
        long totalFreeSpace = drive.TotalFreeSpace; // ড্রাইভের টোটাল ফ্রি স্পেস
        
        // রিডেবল ফরম্যাটে কনভার্ট
        Console.WriteLine($"ড্রাইভ: {drive.Name}");
        Console.WriteLine($"ড্রাইভ টাইপ: {drive.DriveType}");
        Console.WriteLine($"ভলিউম লেবেল: {drive.VolumeLabel}");
        Console.WriteLine($"টোটাল সাইজ: {FormatBytes(totalSize)}");
        Console.WriteLine($"ফ্রি স্পেস (ইউজার): {FormatBytes(freeSpace)}");
        Console.WriteLine($"টোটাল ফ্রি স্পেস: {FormatBytes(totalFreeSpace)}");
        
        // পারসেন্টেজ
        double freePercent = (double)freeSpace / totalSize * 100;
        Console.WriteLine($"ফ্রি স্পেস: {freePercent:F2}%");
    }
    
    static string FormatBytes(long bytes)
    {
        string[] suffixes = { "B", "KB", "MB", "GB", "TB", "PB" };
        int i = 0;
        double value = bytes;
        while (value >= 1024 && i < suffixes.Length - 1)
        {
            value /= 1024;
            i++;
        }
        return $"{value:F2} {suffixes[i]}";
    }
}

আউটপুট উদাহরণ


ড্রাইভ: C:\
ড্রাইভ টাইপ: Fixed
ভলিউম লেবেল: Windows
টোটাল সাইজ: 476.94 GB
ফ্রি স্পেস (ইউজার): 123.45 GB
টোটাল ফ্রি স্পেস: 123.45 GB
ফ্রি স্পেস: 25.88%

সभी ড্রাইভের তথ্য দেখানো


foreach (DriveInfo drive in DriveInfo.GetDrives())
{
    if (drive.IsReady)
    {
        Console.WriteLine($"{drive.Name} ({drive.DriveType})");
        Console.WriteLine($"  টোটাল: {FormatBytes(drive.TotalSize)}");
        Console.WriteLine($"  ফ্রি: {FormatBytes(drive.AvailableFreeSpace)} ({(double)drive.AvailableFreeSpace / drive.TotalSize * 100:F1}%)");
    }
    else
    {
        Console.WriteLine($"{drive.Name} - রেডি নয়");
    }
}

DriveInfo প্রপার্টি রেফারেন্স

প্রপার্টিব্যাখ্যা
AvailableFreeSpaceবর্তমান ইউজারের জন্য উপলব্ধ ফ্রি স্পেস (বাইটে)
TotalFreeSpaceড্রাইভের মোট ফ্রি স্পেস (বাইটে)
TotalSizeড্রাইভের মোট ক্যাপাসিটি (বাইটে)
DriveTypeFixed, Removable, Network, CDRom, Ram, Unknown
IsReadyড্রাইভ অ্যাক্সেসযোগ্য কিনা
VolumeLabelড্রাইভের লেবেল/নাম
DriveFormatফাইল সিস্টেম (NTFS, FAT32, exFAT ইত্যাদি)

লো-লেভেল API (Windows-নির্দিষ্ট, বেশি ডিটেইল)


using System.Runtime.InteropServices;

[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern bool GetDiskFreeSpaceEx(
    string lpDirectoryName,
    out ulong lpFreeBytesAvailable,
    out ulong lpTotalNumberOfBytes,
    out ulong lpTotalNumberOfFreeBytes
);

// ব্যবহার
GetDiskFreeSpaceEx("C:\\", out ulong freeAvail, out ulong total, out ulong totalFree);

সাধারণ সমস্যা এবং সমাধান

  • UnauthorizedAccessException: অ্যাডমিন প্রিভিলেজ দরকার হয় সিস্টেম ড্রাইভের জন্য
  • DriveNotFoundException: ড্রাইভ লেটার ভুল বা ড্রাইভ মাউন্ট নেই
  • নেটওয়ার্ক ড্রাইভ: DriveType.Network হলে ল্যাটেন্সি হতে পারে
  1. Mac-এ ডিস্ক স্পেস ফ্রি করুন: দ্রুত ও নিরাপদ পদ্ধতি

  2. Mac পারফরম্যান্স অপ্টিমাইজ করুন: DaisyDisk দিয়ে ডিস্ক স্পেস দক্ষতার সাথে ম্যানেজ করুন

  3. Advanced PC Cleanup দিয়ে Windows 10-এ দ্রুত ডিস্ক স্পেস ফাঁকি করুন

  4. Windows 10, 8 ও 7-এ ডিস্ক স্পেস ফাঁকা করুন: সহজ ও কার্যকর টিপস