unit uDIOCPFileAccessImpl; interface uses uIRemoteFileAccess, uFileOperaObject; type TDIOCPFileAccessImpl = class(TInterfacedObject, IRemoteFileAccess, IRemoteConnector) private FFileOperaObject: TFileOperaObject; protected /// /// 上传文件 /// /// 远程文件名 /// 本地文件名 /// 类型 procedure UploadFile(pvRFileName, pvLocalFileName, pvType: PAnsiChar); /// /// 删除文件 /// /// 远程文件名 procedure DeleteFile(pvRFileName, pvType: PAnsiChar); /// /// 下载文件 /// /// /// 下载成功返回True /// /// 远程文件名 /// 本地文件名 function DownFile(pvRFileName, pvLocalFileName, pvType: PAnsiChar): Boolean; /// /// 获取远程文件大小 /// function FileSize(pvRFileName, pvType: PAnsiChar): Int64; public constructor Create; procedure AfterConstruction;override; procedure SetHost(pvHost: PAnsiChar); stdcall; procedure SetPort(pvPort:Integer); stdcall; procedure Open; stdcall; procedure Close;stdcall; destructor Destroy; override; end; implementation procedure TDIOCPFileAccessImpl.AfterConstruction; begin inherited AfterConstruction; FFileOperaObject := TFileOperaObject.Create; end; procedure TDIOCPFileAccessImpl.Close; begin FFileOperaObject.close; end; constructor TDIOCPFileAccessImpl.Create; begin inherited Create; end; procedure TDIOCPFileAccessImpl.DeleteFile(pvRFileName, pvType: PAnsiChar); begin FFileOperaObject.deleteFile(pvRFileName, pvType); end; destructor TDIOCPFileAccessImpl.Destroy; begin if FFileOperaObject <> nil then FFileOperaObject.Free; inherited Destroy; end; function TDIOCPFileAccessImpl.DownFile(pvRFileName, pvLocalFileName, pvType: PAnsiChar): Boolean; begin FFileOperaObject.downFile(pvRFileName, pvLocalFileName, pvType); Result := true; end; function TDIOCPFileAccessImpl.FileSize(pvRFileName, pvType: PAnsiChar): Int64; begin FFileOperaObject.readFileINfo(pvRFileName, pvType, False); Result := FFileOperaObject.FileSize; end; procedure TDIOCPFileAccessImpl.Open; begin FFileOperaObject.close; FFileOperaObject.Open; end; procedure TDIOCPFileAccessImpl.SetHost(pvHost: PAnsiChar); begin FFileOperaObject.setHost(pvHost); end; procedure TDIOCPFileAccessImpl.SetPort(pvPort:Integer); begin FFileOperaObject.setPort(pvPort); end; procedure TDIOCPFileAccessImpl.UploadFile(pvRFileName, pvLocalFileName, pvType: PAnsiChar); begin FFileOperaObject.uploadFile(pvRFileName, pvLocalFileName, pvType); end; end.