Chủ Nhật, 18 tháng 11, 2012

Lấy thông tin dung lượng phân vùng ổ cứng của máy tính bằng C#

Mình có viết 1 cái tool nho nhỏ để check dung lượng ổ cứng của server, mỗi khi dung lượng trống xuống dưới một mức nào đó thì báo động (email,sms ) cho người quản lý vào kiểm tra. Dưới đây là hướng dẫn và demo đơn giản về cách làm:

Add using System.Runtime.InteropServices; và sử dụng DLL Import:
  1. [DllImport("kernel32.dll", EntryPoint = "GetDiskFreeSpaceExA")]  
  2. private static extern long GetDiskFreeSpaceEx(  
  3. string lpDirectoryName, out long lpFreeBytesAvailableToCaller,  
  4. out long lpTotalNumberOfBytes, out long lpTotalNumberOfFreeBytes);  
Sử dụng:
  1. long result, total, free, available;  
  2. result = GetDiskFreeSpaceEx("d:"out available, out total, out free);  
  3.   
  4. if (result != 0)  
  5. {  
  6.     long totalGB = total / (1024 * 1024 * 1024);  
  7.     long freeGB = free / (1024 * 1024 * 1024);  
  8.     long availableGB = available / (1024 * 1024 * 1024);  
  9.     string mess = "Tổng số GB: " + totalGB + "\n";  
  10.     mess += "Tổng số GB trống: " + freeGB + "\n";  
  11.     mess += "Tổng số GB trống xài được: " + availableGB;  
  12.     MessageBox.Show(mess);  
  13. }  
Vì kết quả trả về với đơn bị là byte nên mình chuyển qua GB.

Demo:
Sự kiện Form Load khai báo như sau ( dưới đây lấy thông tin của phân vùng D):

Kết quả:

Dưới đây là thông tin Hard Disk Drives máy mình tại thời điểm làm demo này:

Không có nhận xét nào :

Đăng nhận xét