删除文件和文件夹问题

时间:2009-06-01 18:39:22

标签: java file websphere directory icefaces

我的项目是使用三种技术构建的Web项目:

  1. 表示层的Icefaces。

  2. Spring for business layer。

  3. Hibernate for data access layer。

  4. My Project部署在WebSphere 6.1上,用户可以上传文件,我使用ice:inputFile组件来处理上传过程......

    第一个问题是:

    当上传过程完成后,我希望在以下路径下找到上传的文件:myWebProjectRoot / upload /“sessionId”/fileName.ext

    其中“sessionId”是以当前会话ID命名的文件夹,fileName.ex是用户上传的文件...

    但我发现的是:文件夹“sessionId”没有创建,文件直接存储在上传文件夹中..

    我的配置就像icefaces库的组件展示的配置,我将它部署在我的服务器上,并成功创建了sessionId目录....

    我不知道该怎么做..请帮帮我......

    第二个问题是:

    当会话过期时,我希望sessionId文件夹将被删除,我修改了类 InputFileSessionCleaner 中的component-showcase代码并将其删除该文件夹,并且它的子项recursevly从Bottm到up,但有一段时间我面临当前的问题:

    某些文件无法使用我的代码删除 - 可能是由其他进程使用 - 因此该文件夹不会被删除,因为其中一个子文件未被删除。那么在这种情况下该怎么做......?

    我心中有一个想法,那就是: 有没有办法在服务器端创建一个在后台运行的进程:这个进程检查上传目录,如果它找到了至少60分钟创建的文件 - 这是我在web.xml中指定的会话超时时间 - 此过程将删除此文件....

    任何人都可以帮助我......每一个帮助都会得到帮助.....

1 个答案:

答案 0 :(得分:0)

回答你的第二个问题:

WebSphere有一个工具,用于创建工作线程并根据计划安排它们启动。 WebSphere中完全支持这种方法 - 您不会通过使用它来违反任何Java EE对线程创建的限制。

在WebSphere文档中搜索Aysynchronous Beans。

WebSphere中有这种功能有两种,其中一种是通常标准化的形式,您也可以在其他供应商的App Server中找到它。这里给出了一些描述:http://www.ibm.com/developerworks/library/specification/j-commonj-sdowmt/index.html