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.