这个方法为什么会出错?
 if SelectDirectory('请指定光盘驱动器的路径','',str) then
    edit1.Text := IncludeTrailingBackslash(str)
edit1.text为得到的光盘路径
有更好的方法吗?

解决方案 »

  1.   

    拷个代码自己试试看
    Function IsCDROM(Drv : Char):BOOLEAN;
    Var 
      CDR   : string;
      cnt   : byte;
      Count,First : word;
    begin
      Result := false;
      CDR := '';
      asm
        mov ax, 1500h
        xor bx, bx
        int $2f           //CDROM中断
        les di, COUNT
        mov es:[di], bx
        les di, FIRST
        mov es:[di], cx
      end;
      if Count > 0 then
        for cnt := 0 to (Count-1) do
          CDR := CDR + char(First + Byte('A') + cnt);
      Result := (Pos(upcase(Drv),CDR) > 0);
    end;
      

  2.   

    var
       mPath,FileExtendName,FileName:String;
    begin
        if (OpenDialog1.Execute())
        begin
           mPath := OpenDialog1.FileName;
           FileName := ExtractFileName(mPath);
           mPath:= mPath.SubString(1,mPath.Length()-FileName.Length()- 1);  //你要的路径
        end
    end
    如果我的回答对你有用,我不要分,如果你愿意请到下面这帖送个祝福给我女朋友吧!
    http://expert.csdn.net/Expert/topic/1897/1897923.xml?temp=.300213