我的意思是说:我打开一个OpenDialog1后我选了一个文件,之后,我把他包存(弹出SaveDialog1) 然后我输入 保存的文件名,点OK后 为什么老是没有保存呢?
代码如下:
  if OpenDialog1.Execute then
  begin
    if saveDialog1.Execute then
    //   此处代码怎么写?    
end;

解决方案 »

  1.   

    在窗口中加一个TMemo......也可以通过流。。OpenDialog1,SaveDialog只是用于选择文件,作用就是取一个文件的全名而于。 if OpenDialog1.Execute then
      begin
        if saveDialog1.Execute then
        //   此处代码怎么写? 
          Memo.line.LoadFromFile(OpenDialog1.FileName);
          Memo.line.SaveToFile(SaveDialog.FileName);   
    end;
      

  2.   

    可是 文件名 如何来确定?
    因为 有时后是图片,有时后是压缩包,有时后是.htm文件。当我在saveDialog1中选择一个文件后,我在SaveDialog中如何只要写个要保存的文件名就可以了 不管是什么 后缀 都能存储?
      

  3.   

    就是说 如何让 SaveDialog中的文件类行中 有类型可以选。
      

  4.   

    to :fengyvn(不偷腥的猫) ( ) :  如何 动态设置FILTER属性.?
      

  5.   

    to  : hch_45(んこん) ( ) :你这样的方法复制 跟本就复制不过去 本来一个三MB的东西 复制后才4个字节。
      

  6.   

    var
    FileSource,FileDest:TfileStream
    FileStrD,FileStrs:string;
    begin  FileStrD:=FileSave.FileName;
      FileStrs:=OpenDialog1.FileName;
        FileSource:=TFileStream.Create(FileStrS,fmOpenRead or fmShareDenyWrite);
        try                                    //打开源文件及目的文件流
        FileDest:=TFileStream.Create(FileStrD,fmOpenWrite or fmShareDenyRead);
          try
          FileDest.CopyFrom(FileSource,FileSource.Size);
          finally
          FreeAndNil(FileDest);
          end;
        finally
        FreeAndNil(FileSource);               //释放文件流
        end;
      

  7.   

    我说的方法只能用于文本文件,如果二进制文件如JPG,ZIP等。你就按楼上的方法(文件流)来做。
      

  8.   

    to yesxwl() ( ) :
    FileSource:=TFileStream.Create(FileStrS,fmOpenRead or fmShareDenyWrite);
    上面的语句中 的 FileStrS是什么东西 好象没有定义过?
      

  9.   

    不是说错了 是FileSave? 是savedialog吗?
      

  10.   

    sorry,Filesave是savedialog的名,那是我起的个名字,
      

  11.   

    不过 兄弟 还是保存不来,我的代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      FileSource ,FileDest : Tfilestream;
      fileStrd,FileStrs:string;
    begin
      if opendialog1.Execute then
      begin
         filestrs := opendialog1.FileName;
      end;
    //  FileStrD := SaveDialog1.FileName;  fileSource := TFileStream.Create(filestrs,fmOpenRead or fmShareDenyWrite);
      try
       if savedialog1.Execute then
      begin
         filestrd := savedialog1.FileName;
      end;
       fileDest := TFileStream.Create(FileStrD,fmOpenWrite or fmShareDenyRead);
       try
       FileDest.CopyFrom(FileSource,FileSource.Size);
          finally
          FreeAndNil(FileDest);
          end;
        finally
        FreeAndNil(FileSource);               //释放文件流
        end;end;
      

  12.   

    procedure TForm1.BitBtn1Click(Sender: TObject);var
      FileSource ,FileDest : Tfilestream;
      fileStrd,FileStrs:string;
      F:File;
    begin
      if opendialog1.Execute then
      begin
         filestrs := opendialog1.FileName;
      end;
    //  FileStrD := SaveDialog1.FileName;  fileSource := TFileStream.Create(filestrs,fmOpenRead or fmShareDenyWrite);
      try
       if savedialog1.Execute then
      begin
         filestrd := savedialog1.FileName;
      end;
       if not FileExists(Filestrd) then//如不存在新建
       begin
       assignFile(F,Filestrd);
       Rewrite(f);
       CloseFile(F);
       end;   fileDest := TFileStream.Create(FileStrD,fmOpenWrite or fmShareDenyRead);
       try
       FileDest.CopyFrom(FileSource,FileSource.Size);
          finally
          FreeAndNil(FileDest);
          end;
        finally
        FreeAndNil(FileSource);               //释放文件流
        end;end;
    测试已通过
      

  13.   

    比如 我在C盘下 选了 一个AA.exe文件,我要保存在D盘下,保存为 bb  然后 他就说 找不到 保存文件的路径,另外,如何给文件类型,下面产生可选文件扩展名。然后 可以选择了。?
      

  14.   

    1.新存的文件名FilestrD前加上路径如:'D:\'+FilestrD
    2.文件类型:saveDialog1.Fileter:='执行文件|*.exe|位图文件|*.bmp'
      

  15.   

    to 4water :
    说明一下第一问题其实是不需要加路径的,saveDialog1.filename已经包括路径了
    检查一下的源码是否抄错?
    我已测试过