一个小问题,麻烦进来的哥们请帮我解答下,东西比较赶时间,一时想不到好的方法。thanks问题描述:
需要判断所有盘根,是否存在一个特定的文件夹,例"csdn"文件夹。
我是这样做,for i:= 65 to 90 do  // 从A到Z 盘符
begin
  if DirectoryExists(pchar(chr(i)+':\csdn')) then
end;看起来像搞定了,但是当访问A盘(软盘)时,会出现一个软盘错误提示什么的。
就在这里,纠结没有一个好的方法来判断,如果说不从A盘开始,从C盘开始遍历,
但是我还是担心用户机器里面有一些特别的驱动器,比如打印机、扫描仪,各种乱七八糟无法预料的盘符,会出现如软盘那种的提示。纠结万分,想完美点啊。

解决方案 »

  1.   

    这个主要是软驱里面没有插入软盘才会出现错误提示,根本不需要理会,
    加个个try,然后忽略这个异常就可以了。
      

  2.   

    因为该盘里根本没有数据,所以出错提示,既然没有数据,当然也不会有你想找的某个目录,
    try中捕获该异常,然后不做任何处理,就不会弹出错误提示了。
      

  3.   

    #sololie试了try 没有作用,照样提示。
      

  4.   

    #HSFZXJY这个判断类型没啥用吧?需求是包括移动盘,软盘也属于外设吧。
      

  5.   

    好像这种异常无法用delphi捕获。换个思路,因为软驱软盘这玩意至少10年前就停产了吧,其他移动设备也是不能占用A盘符的,所以根本不用考虑A盘,遍历盘符时就pass掉A。
    然后其他驱动器可以遍历时先判断它是否可用,例如光驱中是否已插入光盘,如果已经插入光盘再去找这目录。