1

我正在尝试使用 PeopleCode 应用程序引擎从远程服务器中删除文件。GetAttachment 可以工作,只是我想遍历服务器上的整个目录并匹配诸如March .csv 之类的文件。

另外,我需要按日期范围执行此操作。*.csv 在日期 1 和日期 2 之间。

获取附件似乎要求您知道文件名并单独删除文件。所以模式模式匹配将不起作用。

我可以使用 java 对象获取列表并检查日期:

本地 JavaObject &joFile = CreateJavaObject("java.io.File", SFO_DEL_FTP_AET.FTPDIRECTORY); 本地 JavaObject &joFileList; 本地 JavaObject &reflectArray = GetJavaClass("java.lang.reflect.Array"); 本地 JavaObject &dttm_format = CreateJavaObject("java.text.SimpleDateFormat", "yyyy-MM-dd");

但我只能在本地服务器上使用它。

有没有办法实际连接到服务器,然后使用 java 对象?

谢谢,JPS

4

1 回答 1

1

您可以为此使用 Apache Commons NET库。其中一个包用于 FTP/FTPS 访问。

FTPClient ftpClient = new FTPClient();
ftpClient.connect(server, port);
ftpClient.login(user, pass);
 
FTPFile[] files = ftpClient.listFiles("/yourDir");     

获得文件列表后,您可以从FTPFile对象中检索名称。

为了删除一个文件,你可以使用 FTPClient 的deleteFile方法。

public boolean deleteFile(String pathname)

删除 FTP 服务器上的文件。参数: pathname - 要删除的文件的路径名。返回:如果成功完成,则返回 true,否则返回 false。

 
for (FTPFile file : files) 
{
    String fileName = file.getName();
    /*if (file.isDirectory()) 
       handle directory access*/
    
    //use getAttachment from the fileName
  
    //in order to delete a file, call FTPClient's deleteFile Method  
    //ftpClient.deleteFile(filePath);
}

ftpClient.logout();
ftpClient.disconnect();

您可以在此处下载 NET 库

于 2021-06-07T23:46:55.463 回答