Java FTPClient 删除文件 deleteFile,文件目录多层时会出错,文件目录小于等于4层可以正常删除

Java FTPClient 删除文件 deleteFile,文件目录多层时会出错,文件目录小于等于4层可以正常删除,第1张

中午也遇到调用ftp.deleteFile("文件路径")删除文件失败;

建议:1.下文件路径是否正确(包括路径需从根目录开始 /)

2.文件名称若包含中文(new string(path.getBytes("GBK"),"ISO-8859-1"))注意编码问题

主要发现:题主说的用命令创建的文件无法删除问题!自己命令创建的txt文件是可以删除的;不知道题主删除不了的是什么文件;

另:发现 用这个函数删除文件时;ftp上文件已被删除但返回false 这个问题不知谁有遇到,还请不吝赐教

新增类 Ftp 继承org.apache.commons.net.ftp.FTPFile

public boolean removeAll(String pathname) {

try {

FTPFile[] files = this.listFiles(pathname)

for (FTPFile f : files) {

if (f.isDirectory()) {

this.removeAll(pathname + "/" + f.getName())

this.removeDirectory(pathname)

}

if (f.isFile()) {

this.deleteFile(pathname + "/" + f.getName())

}

}

} catch (IOException e) {

e.printStackTrace()

return false

}

return true

}

FtpClient client = new FtpClient(ftp_ip, Integer.parseInt(ftp_port))

client.login(ftp_user, ftp_pwd)

client.binary()

client.cd(this.ftp_rdir)

String cmd = "DELE " + filename + "\r\n"

client.sendServer(cmd)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11628234.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存