我程序功能是把一个地方的文件复制到另个地方。
但是,当我第一次复制成功后,然后在程序外(程序在运行)把复制的文件删除,再
点击按钮执行程序,如果再复制生成的文件与刚才删除的文件名字相同就不行了!!!
我用的FileStream创建了文件
(aStream := TFileStream.Create(afilename, fmCreate, fmShareDenyNone);),
流都释放了的,我看过部分代码如下:
procedure TForm1.VariantToFile(const v: OLEVariant; aFileName: String);
var
    aStream:TStream;
    aMSTream:TMemoryStream;
begin
   try
      try
        aStream := nil;
        if FileExists(afilename) then
        begin
            aStream := TFileStream.Create(afilename, fmOpenWrite, fmShareDenyNone)
       //第二次就是这里出错!我明明已把文件删除,它居然说另一个程序在使用文件,访问出错!
        end
        else
            aStream := TFileStream.Create(afilename, fmCreate, fmShareDenyNone);
            aMSTream := TMemoryStream.Create;
            VariantToStream(v,aMSTream);
            aStream.CopyFrom(aMsTream,aMStream.size);
      finally
         aStream.Free;
         aMStream.Free;
      end;
   except
      Raise Exception.Create('Variant To File Failure');
   end;
end;