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

Delphi 調用 WinAPI:GetLogicalDriveStrings 列舉邏輯磁碟機

     編輯:Delphi

取得所有磁碟機代碼字串 (A:\、C:\, D:\...)

GetLogicalDriveStrings 將現有邏輯磁碟機以「代碼 + 冒號 + 反斜線 + 雙重空字元」格式寫入緩衝區,每個磁碟機佔 4 字元。傳回值為實際寫入字元數 (含結尾雙空字元)。

函數宣告


function GetLogicalDriveStrings(
  nBufferLength: DWORD;
  lpBuffer: PAnsiChar
): DWORD; stdcall;

完整範例:逐一解析並顯示於 Memo


procedure TForm1.FormCreate(Sender: TObject);
var
  PStr: PChar;
  DriveArr: array[0..4*26] of Char; // 26 個磁碟機 * 4 字元
begin
  GetLogicalDriveStrings(SizeOf(DriveArr), DriveArr);
  PStr := DriveArr;
  Memo1.Clear;
  while PStr <> nil do
  begin
    Memo1.Lines.Add(PStr);
    Inc(PStr, StrLen(PStr) + 1); // 移至下一個字串
    if Byte(PStr[0]) = 0 then PStr := nil; // 雙重空字元 = 結束
  end;
end;

執行效果圖

替代方案

  • GetLogicalDrives:回傳位元遮罩,第 0 位 = A:,第 1 位 = B: ... 適合快速判斷存在性。
  • VCL SysUtils.GetLogicalDriveStrings:直接回傳 TStringList,更方便。

注意:網路磁碟機、可移除裝置皆會列出;CD-ROM 無媒體時可能不出現。

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