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;
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.
GetDieskFreeSpaceEx metodunun kullanımı şu şekildedir;
Kod:
GetDieskFreeSpaceEx(Disk sürücüsü adi, Ulaşılan boş alan, Toplam alan, Boş alan)
Kod:
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 **** 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";
}
}
}
}
Kod:
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.