=============== 判断盘符问题 100%结贴 ===============
一个小问题,麻烦进来的哥们请帮我解答下,东西比较赶时间,一时想不到好的方法。thanks
问题描述:
需要判断所有盘根,是否存在一个特定的文件夹,例"csdn"文件夹。
我是这样做,
for i:= 65 to 90 do // 从A到Z 盘符
begin
if DirectoryExists(pchar(chr(i)+':\csdn')) then
end;
看起来像搞定了,但是当访问A盘(软盘)时,会出现一个软盘错误提示什么的。
就在这里,纠结没有一个好的方法来判断,如果说不从A盘开始,从C盘开始遍历,
但是我还是担心用户机器里面有一些特别的驱动器,比如打印机、扫描仪,各种乱七八糟无法预料的盘符,会出现如软盘那种的提示。
纠结万分,想完美点啊。
[解决办法]
用GetDriveType()
[解决办法]
好像这种异常无法用delphi捕获。换个思路,因为软驱软盘这玩意至少10年前就停产了吧,其他移动设备也是不能占用A盘符的,所以根本不用考虑A盘,遍历盘符时就pass掉A。
然后其他驱动器可以遍历时先判断它是否可用,例如光驱中是否已插入光盘,如果已经插入光盘再去找这目录。