Java IE上传文件后无法删除文件夹,但可以删除文件

Java IE上传文件后无法删除文件夹,但可以删除文件,java,windows,internet-explorer,apache-commons-fileupload,Java,Windows,Internet Explorer,Apache Commons Fileupload,使用IE上传文件后,无法删除文件所在的文件夹,但可以删除该文件。通过Firefox上传后就没有问题了。如何解锁目录 我的代码: DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory); List<FileItem> uploadedItems

使用IE上传文件后,无法删除文件所在的文件夹,但可以删除该文件。通过Firefox上传后就没有问题了。如何解锁目录

我的代码:

DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
List<FileItem> uploadedItems = servletFileUpload.parseRequest(request);
if (uploadedItems != null && !uploadedItems.isEmpty()) {
    FileItem fileItem = uploadedItems.get(0);
    InputStream is = fileItem.getInputStream();
    long jobId = importService.importFileAsync(is, fileItem.getName());
    is.close();
    return jobId;
}

如果使用Apache Commons IO,它是一个单行程序:

FileUtils.deleteDirectory(dir);

但是我想让用户管理他的文件夹。我的目标不是以编程方式删除它,而是只“解锁”,这样用户可以在文件系统中删除它,如果他愿意的话。除非释放文件夹上的锁,否则无法执行此操作,只能停止向该目录写入(关闭/结束所有流)。关闭还需要什么?我关闭从FileItem获取的inputStream。通过try with resource会自动关闭InputStreamReader,不是吗?我不太确定,您有一个传入方法的inputStream引用,因此您的inputStream可能会在try/catch实例中幸存下来。我不是100%确定,这听起来不对,但因为我看不到您的代码,也看不到它被锁定的任何其他原因,所以您应该尝试手动关闭inputStream,然后看看会发生什么。(反复试验,直到锁打开)
FileUtils.deleteDirectory(dir);