我试图删除我暂时创建并使用apache commons ftp-class上传的一些文件。
FTPClient ftp = new FTPClient();
ftp.login(user, password);
/* Some FTP-Operations in between... not really important*/
File uploadFile = new File("tempfile.txt");
/* Filling the file here... */
ftp.storeFile(uploadFile.getName(), new FileInputStream(uploadFile));
/* Some more operations on FTP and Filesystem */
uploadFile.delete();
uploadFile.delete();
返回false
。如果该行
ftp.storeFile(uploadFile.getName(), new FileInputStream(uploadFile));
被遗漏,删除工作完全正常。
在删除文件之前,我还尝试断开连接:
ftp.logout();
ftp.disconnect();
仍然没有运气。
但是,如果我强制垃圾收集器运行
System.gc();
System.runFinalization();
上传后可以删除该文件。
现在的问题是:我得知你无法真正强制进行垃圾收集。你只能建议它。所以,这不是豁免下注。
有没有办法以任何方式处理ftp-object?它没有dispose()
oder flush()
方法或其他任何方法。
或者它是否真的是正确的"专业"如何调用垃圾收集器并希望最好?