程序大致如下,你可以參考一下:
--------------------------------------------------------------
1.服務器端
假設該服務器對像名稱為FileServer)
procedure TFileServer.PutFile(const FileName: WideString;
const Data: OleVariant);
var
FStream:TFileStream;
P: Pointer;
begin
FStream:=TFileStream.Create(FileName,fmCreate or fmOpenWrite);
try
P:=VarArrayLock(Data);
try
FStream.WriteBuffer(P,VarArrayHighBound(Data,1)-1);
finally
VarArrayUnLock(Data);
end;
finally
FStream.Free;
end;
end;
--------------------------------------------------------------
2.客戶端:
function FileToVariant:OleVariant;
var
FStream:TFileStream;
P
ointer;
begin
FStream:=TFileStream.Create('C:/123.txt',fmOpenRead);
try
Result:=VarArrayCreate([0,FStream.Size-1],varByte);
P:=VarArrayLock(Result);
try
FStream.ReadBuffer(P^,FStream.Size);
finally
VarArrayUnLock(Result);
end;
finally
FStream.Free;
end;
end;
procedure SaveFile(const FileName:string);
var
V:OleVariant;
Ref:IFileServer;
begin
V:=FileToVariant(FileName);
Ref:=CoFileServer.CreateRemote('192.168.1.1');
Ref.PutFile(FileName,V);
Ref:=nil;
end;