Disk Toplam Alanını ve Boş Alanını Bulma

Disk sürücüleri hakkında bilgi almak için kernel32.dll dosyasını kullanabiliriz.Disk boyutunu ve disk üzerindeki boş alan miktarını bulmak için bu dll dosyasının GetDieskFreeSpaceEx metodundan faydalanacağız.

GetDieskFreeSpaceEx metodunun kullanımı şu şekildedir;

GetDieskFreeSpaceEx(Disk sürücüsü adi, Ulaşılan boş alan, Toplam alan, Boş alan)
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace HakanKaraarslan
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }



        [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        [return: MarshalAs(UnmanagedType.Bool)]
         static extern bool GetDiskFreeSpaceEx(string IpDirectoryName,
         out ulong IpFreeBytesAvailable,
         out ulong IpTotalNumberOfBytes,
         out ulong IpTotalNumberOfFreeBytes);
 

        private void btn_bilgial_Click(object sender, EventArgs e)
        {
            ulong toplamalan;
            ulong ulasilanbosalan;
            ulong bosalan;
            double alan;
            bool sonuc = GetDiskFreeSpaceEx(txt_disk.Text, out ulasilanbosalan,out toplamalan, out bosalan);
           if (sonuc)
           {
                throw new System.ComponentModel.Win32Exception();
                alan = bosalan / (1024 * 1024);
                lbl_bosalan.Text = lbl_bosalan.Text + " = " + alan.ToString() + " mb";
                alan = toplamalan / (1024 * 1024);
                lbl_diskboyut.Text = lbl_diskboyut.Text + " = " + alan.ToString() + " mb";
               
           }

        }
    }
}

 bool sonuc = GetDiskFreeSpaceEx(txt_disk.Text, out ulasilanbosalan,out toplamalan, out bosalan);

… satırında out ifadesi ile geriye dönen değerlerin hangi değişkenlere aktarılcağını belirtiyoruz.Eğer sonuç değişkeni false değerinden farklı bir değer içeriyorsa, işlem başarı ile gerçekleştirilmiş demektir.