Как удалить все текстовые файлы в каталоге FTP? - PullRequest
2 голосов
/ 03 июля 2019

Мое приложение хранит текстовые файлы на FTP-сервере, которые также размещаются на веб-службе.

В каталоге, где я размещаю текстовые файлы, я могу найти другие текстовые файлы. Я хотел бы удалить все файлы в текущем каталоге каждый раз, когда сохраняю новые.

На самом деле я пытался использовать следующую команду:

FTPClient ftpClient = new FTPClient();
ftpClient.connect(siteFTP);
if (ftpClient.login(usrFTP, pswFTP)) {
  ftpClient.enterLocalPassiveMode();          
  FTPFile[] remoteFiles = ftpClient.listFiles(path);
  if (remoteFiles.length > 0) {
    ftpClient.deleteFile("/prenotazioni/*.txt");
  }
}

Но даже если в этом каталоге были txt-файлы, FTP-репозиционирование:

> DELE /prenotazioni/*.txt
> 550 File not found

1 Ответ

2 голосов
/ 03 июля 2019

Использование * не будет работать.После того, как вы получите список файлов в объявленном каталоге, вы должны выполнить итерацию и удалить файлы один за другим, используя deleteFile(String pathname) (также проверяя, если имя файла endsWith(".txt")).

Каждый FTPFile имеет метод getName().Вы должны создать полный путь, чтобы FTPClient знал, какой файл удалить.Я считаю, что это будет что-то вроде:

ftpClient.deleteFile("/prenotazioni/" + remoteFiles[i].getName());
...