我有一个小工具(在心爱的 Delphi ),监测硬盘的自由空间
我使用GetDriveType
问题是,“谷歌驱动器”正在被识别为DRIVE_FIXED所以我试图管理如何识别这个驱动器,以排除他们...目前的工作方法是获得驱动器名称,并在它的名称中找到“谷歌”..但我认为不是最严格的方式.
procedure TFormSpace.CreaLabels;
var
Type, i, n: Word;
LblDummy: TLabel;
Candidate: string;
begin
Max:=0;
i:=1;
repeat
Candidate:=chr(ord('c')+i-1) + ':\';
Type:=GetDriveType(pchar(Candidate));
if (Tipo=DRIVE_FIXED) then begin
//Do something
end;
i:=i+1;
until (i=MaxItems);
end;
谢谢!
在示例设置中:
c:\ -> 1TB SSD
d:\ -> 2TB SSD
f:\ -> Maped network drive
g:\ -> google drive, replicated con "d:\Drive"
上述代码将返回:C:\ D:\ G:\
但预期结果是:C:\ D:\
(真实的物理驱动器)
1条答案
按热度按时间w51jfk4q1#
答案是标志FILE_SUPPORTS_REMOTE_STORAGE(值0x00000100)
可以看到一项研究here
或者这里是