我正在尝试使用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
您可以使用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库