java - Apache Commonfs VFS 避免增加临时目录

标签 java vfs temporary-directory apache-commons-vfs

我对 VFS 有疑问。我开发了一个 Web 应用程序来将部署包(zip 文件)的 URL 粘贴到文本区域中。您可以查看部署脚本并在最后部署应用程序。它在小型机器上的 tomcat 上运行。部署包大约 5-100 MB。我现在的问题是,临时目录会随着时间的推移而增长。 VFS 似乎没有从临时目录中删除文件。我为 tomcat 编写了一个启动脚本,用于清理 vfs 临时目录。但这一点也不好。

  1. 有没有办法在不关闭 FileSystemManager 的情况下通过 VFS 删除它们?

  2. 临时目录似乎是一个缓存,但是当文件更改时它不会从内部网再次加载它。

我曾经设置过

        ((DefaultFileSystemManager) VFS.getManager()).setFilesCache(new NullFilesCache());
        ((DefaultFileSystemManager) VFS.getManager()).setCacheStrategy(CacheStrategy.ON_CALL);

但 VFS 似乎没有将临时目录视为缓存。我理解错了吗?

最佳答案

我通过修改我的核心项目以通过工厂获取 FileSystemManager 并通过我的 web 项目处理内部的 FileSystemManager 来解决这个问题( session 绑定(bind)和手动销毁方法)。在销毁时,我只是关闭一个 FileSystemManager 并创建一个新的。这会整理临时目录。

关于java - Apache Commonfs VFS 避免增加临时目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12622439/

相关文章:

java - Jackson:一个类有两种不同的表示

java - Eclipse 调试器错误地显示 cjk 字符 - Java

java - 用JSOUP解析HTML文档,无法选择表格节点?

java - Commons VFS 缓存是如何工作的?

java - 在测试类中使用 JUnit 临时文件夹时出现 "folder has not yet been created"错误

ios - iOS 何时清理本地应用程序 ./tmp 目录?

windows - Composer 安装 : error on temporary file

java - 在 Java 中通过 HTTP 发送 SOAP 消息

WSO2 ESB 4.8 VFS 代理服务 - MoveAfterFailure?

java - 使用 Apache Commons VFS 将单个文件复制到目标文件夹中