Используйте Peoplecode для удаления файлов с удаленного FTP-сайта

#java #peoplesoft #peoplecode

Вопрос:

Я пытаюсь использовать механизм приложений PeopleCode для удаления файлов с удаленного сервера. GetAttachment будет работать, за исключением того, что я хочу просмотреть весь каталог на сервере и сопоставить файлы, такие как march.csv.

Кроме того, мне нужно сделать это по диапазону дат. *.csv между датой 1 и датой 2.

Для получения вложения, по-видимому, требуется, чтобы вы знали имя файла и удаляли файлы по отдельности. Таким образом, сопоставление шаблонов с образцами не будет работать.

Я могу получить список и проверить даты, используя объекты java:

Локальный JavaObject amp;joFile = CreateJavaObject(«java.io.Файл», КАТАЛОГ SFO_DEL_FTP_AET.FTP); Локальный JavaObject amp;joFileList; Локальный JavaObject amp;reflectArray = GetJavaClass(«java.lang.reflect.Массив»); Локальный JavaObject amp;dttm_format = Создать JavaObject(«java.text.SimpleDateFormat», «гггг-ММ-дд»);

но я могу использовать это только с локальными серверами.

Есть ли способ на самом деле подключиться к серверу, а затем использовать объекты java?

Спасибо, Джей Пи Эс

Ответ №1:

Для этого вы можете использовать сетевую библиотеку Apache Commons. Один из пакетов предназначен для доступа по протоколу FTP/FTPS.

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

Как только вы получите список файлов, вы сможете извлечь имя из FTPFile объекта.

Чтобы удалить файл, вы можете использовать deleteFile метод FTPClient.

public boolean deleteFile(String pathname)

Удаляет файл на FTP — сервере. Параметры: путь — Путь к удаляемому файлу. Возвращает: 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();
 

Вы можете скачать сетевую библиотеку здесь