我的应用程序将txt文件存储在FTP服务器上,该文件也托管在网络服务上。
在我存放txt文件的目录中,我可以找到其他txt文件。每次存储新文件时,我都希望删除当前目录中的所有文件。
实际上我正在尝试使用以下命令:
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
答案 0 :(得分:2)
使用*
不起作用。获取声明目录中的文件列表之后,必须对其进行迭代并使用deleteFile(String pathname)
逐个删除文件(还要检查文件名endsWith(".txt")
)。
每个FTPFile
都有方法getName()
。您应该构造完整路径,以便FTPClient
知道要删除的文件。我相信会是这样:
ftpClient.deleteFile("/prenotazioni/" + remoteFiles[i].getName());