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

  • 是否可以通过VFS删除它们而不关闭FileSystemManager
  • 似乎temp dir是一个缓存,但是当文件更改时,它不会再次从Intranet加载它。

  • 我曾经设定
            ((DefaultFileSystemManager) VFS.getManager()).setFilesCache(new NullFilesCache());
            ((DefaultFileSystemManager) VFS.getManager()).setCacheStrategy(CacheStrategy.ON_CALL);
    

    但是似乎VFS不会将临时目录视为缓存。我会听错吗?

    最佳答案

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

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

    10-10 16:31