首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 調用 WinAPI:GetLogicalDrives 位元遮罩快速判斷磁碟機存在性

     編輯:Delphi

無需字串解析,一個 DWORD 即知 26 個磁碟機狀態

GetLogicalDrives 回傳 32 位元無號整數,第 0 位對應 A:,第 1 位對應 B:,以此類推。位元為 1 表示該磁碟機存在。比 GetLogicalDriveStrings 更輕量,適合只需判斷存在性的場合。

函數宣告


function GetLogicalDrives: DWORD; stdcall;

範例:列舉存在的磁碟機至 Memo


procedure TForm1.FormCreate(Sender: TObject);
var
  Drives: DWORD;
  i: Integer;
begin
  Drives := GetLogicalDrives;
  Memo1.Clear;
  for i := 0 to 25 do
    if LongBool(Drives and ($0001 shl i)) then
      Memo1.Lines.Add(Char(Ord('A') + i) + ':\');
end;

執行效果圖

位元操作說明

  • $0001 shl i:產生只在第 i 位為 1 的遮罩。
  • Drives and Mask:若結果非 0,表示該位為 1。
  • LongBool(...):將非零整數轉為 True。

搭配 GetDriveType 可進一步過濾磁碟機類型 (固定/可移除/網路/CD-ROM/RAM)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved