一个小例子
  SaveDialog1.Title := '报盘文件另存为:'; 
  if  DiskSize(Ord('A')-$40) = -1  then  //软驱中没有软盘
  begin
    SaveDialog1.InitialDir := gSysPath;
  end
  else begin   //软驱中有软盘
    SaveDialog1.InitialDir := 'A:\';
  end;
  SaveDialog1.Filter := 'Zip files (*.zip)|*.zip';

解决方案 »

  1.   

    判断软驱是否有软盘
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Label1: TLabel;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;  function DiskInDrive(const Drive: char): Boolean;var
      Form1: TForm1;implementation{$R *.DFM}function DiskInDrive(const Drive: char): Boolean;
    var
    DrvNum: byte;
    EMode: Word;
    begin
      result := false;
      DrvNum := ord(Drive);
      if DrvNum >= ord('a') then dec(DrvNum,$20);
      EMode := SetErrorMode(SEM_FAILCRITICALERRORS);  Try
          if DiskSize(DrvNum-$40) <> -1 then
          begin
              result := true;
              //if Messagebox(0,'错误提示!','[A:\]驱动器中的磁盘已准备好!!!',
                              mb_iconinformation+mb_YesNO) = idYes then
              Messagebox(0,'[A:\]驱动器中的磁盘已准备好!!!','错误提示!',
                         mb_iconinformation+mb_OK);
          end else
              Messagebox(0,'请向[A:\]驱动器中插入磁盘!!!','错误提示!',
                         mb_iconinformation+mb_OK);//原来的代码messagebeep(0);
      Finally
          SetErrorMode(EMode);
      End;end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      DiskInDrive('a');
    end;end.
    COPY文件
    copyfile('c:\msdos.sys','A:\msdos.sys',true)
      

  2.   

    1:API copyfile(pchar('name1'),pchar('name2'),true);
    2:
    function DiskIndrive(const Drive:Char):boolean;
    var dn:byte; em:word;
    begin
      result:=false;
      dn:=ord(drive);
      if dn>ord('a') then dec(dn,$20);
      em:=setErrorMode(SEM_FailCriticalErrors);
      try
        if disksize(dn-$40)<>-1 then result:=true;
      finally
        SetErrorMode(em);
      end;
    end;procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      if diskindrive('a') then showmessage('Drive : a  Ready')
                                 else showmessage('Drive : a Not ready!');
    end;