uDIOCPFileAccessImpl.pas 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. unit uDIOCPFileAccessImpl;
  2. interface
  3. uses
  4. uIRemoteFileAccess,
  5. uFileOperaObject;
  6. type
  7. TDIOCPFileAccessImpl = class(TInterfacedObject, IRemoteFileAccess, IRemoteConnector)
  8. private
  9. FFileOperaObject: TFileOperaObject;
  10. protected
  11. /// <summary>
  12. /// 上传文件
  13. /// </summary>
  14. /// <param name="pvRFileName"> 远程文件名 </param>
  15. /// <param name="pvLocalFileName"> 本地文件名 </param>
  16. /// <param name="pvType"> 类型 </param>
  17. procedure UploadFile(pvRFileName, pvLocalFileName, pvType: PAnsiChar);
  18. /// <summary>
  19. /// 删除文件
  20. /// </summary>
  21. /// <param name="pvRFileName"> 远程文件名 </param>
  22. procedure DeleteFile(pvRFileName, pvType: PAnsiChar);
  23. /// <summary>
  24. /// 下载文件
  25. /// </summary>
  26. /// <returns>
  27. /// 下载成功返回True
  28. /// </returns>
  29. /// <param name="pvRFileName"> 远程文件名 </param>
  30. /// <param name="pvLocalFileName"> 本地文件名 </param>
  31. function DownFile(pvRFileName, pvLocalFileName, pvType: PAnsiChar): Boolean;
  32. /// <summary>
  33. /// 获取远程文件大小
  34. /// </summary>
  35. function FileSize(pvRFileName, pvType: PAnsiChar): Int64;
  36. public
  37. constructor Create;
  38. procedure AfterConstruction;override;
  39. procedure SetHost(pvHost: PAnsiChar); stdcall;
  40. procedure SetPort(pvPort:Integer); stdcall;
  41. procedure Open; stdcall;
  42. procedure Close;stdcall;
  43. destructor Destroy; override;
  44. end;
  45. implementation
  46. procedure TDIOCPFileAccessImpl.AfterConstruction;
  47. begin
  48. inherited AfterConstruction;
  49. FFileOperaObject := TFileOperaObject.Create;
  50. end;
  51. procedure TDIOCPFileAccessImpl.Close;
  52. begin
  53. FFileOperaObject.close;
  54. end;
  55. constructor TDIOCPFileAccessImpl.Create;
  56. begin
  57. inherited Create;
  58. end;
  59. procedure TDIOCPFileAccessImpl.DeleteFile(pvRFileName, pvType: PAnsiChar);
  60. begin
  61. FFileOperaObject.deleteFile(pvRFileName, pvType);
  62. end;
  63. destructor TDIOCPFileAccessImpl.Destroy;
  64. begin
  65. if FFileOperaObject <> nil then FFileOperaObject.Free;
  66. inherited Destroy;
  67. end;
  68. function TDIOCPFileAccessImpl.DownFile(pvRFileName, pvLocalFileName,
  69. pvType: PAnsiChar): Boolean;
  70. begin
  71. FFileOperaObject.downFile(pvRFileName, pvLocalFileName, pvType);
  72. Result := true;
  73. end;
  74. function TDIOCPFileAccessImpl.FileSize(pvRFileName, pvType: PAnsiChar): Int64;
  75. begin
  76. FFileOperaObject.readFileINfo(pvRFileName, pvType, False);
  77. Result := FFileOperaObject.FileSize;
  78. end;
  79. procedure TDIOCPFileAccessImpl.Open;
  80. begin
  81. FFileOperaObject.close;
  82. FFileOperaObject.Open;
  83. end;
  84. procedure TDIOCPFileAccessImpl.SetHost(pvHost: PAnsiChar);
  85. begin
  86. FFileOperaObject.setHost(pvHost);
  87. end;
  88. procedure TDIOCPFileAccessImpl.SetPort(pvPort:Integer);
  89. begin
  90. FFileOperaObject.setPort(pvPort);
  91. end;
  92. procedure TDIOCPFileAccessImpl.UploadFile(pvRFileName, pvLocalFileName,
  93. pvType: PAnsiChar);
  94. begin
  95. FFileOperaObject.uploadFile(pvRFileName, pvLocalFileName, pvType);
  96. end;
  97. end.