delphi GetDriveType检测“谷歌驱动器”为DRIVE_FIXED...如何排除它们?

disbfnqx  于 2023-04-20  发布在  其他
关注(0)|答案(1)|浏览(130)

我有一个小工具(在心爱的 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:\(真实的物理驱动器)

w51jfk4q

w51jfk4q1#

答案是标志FILE_SUPPORTS_REMOTE_STORAGE(值0x00000100)
可以看到一项研究here
或者这里是

相关问题