为了账号安全,请及时绑定邮箱和手机立即绑定

如何删除FTP目录中的所有txt文件?

如何删除FTP目录中的所有txt文件?

慕慕森 2023-03-02 15:47:54
我的应用程序将 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
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

使用*是不行的。在您获得声明目录中的文件列表后,您必须迭代它并使用deleteFile(String pathname)(同时检查文件名endsWith(".txt"))一个一个地删除文件。

各有FTPFile办法getName()。您应该构建完整路径,以便FTPClient知道要删除的文件。我相信它会是这样的:

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


查看完整回答
反对 回复 2023-03-02
?
白衣非少年

TA贡献1155条经验 获得超0个赞

完整方法:


    public static void deleteFilesInFolderFtp(String dirPath, FTPClient ftpClient) {

    try {

        // use local passive mode to pass firewall

        ftpClient.enterLocalPassiveMode();

        FTPFile[] remoteFiles = ftpClient.listFiles("/" + dirPath);

        if (remoteFiles.length > 0) {

            for (int i = 0; i < remoteFiles.length; i++) {

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

            }

        }

    } catch (IOException ex) {

        ex.printStackTrace();

    }

}


查看完整回答
反对 回复 2023-03-02
  • 2 回答
  • 0 关注
  • 179 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号