Java .War文件删除

时间:2012-09-17 07:30:23

标签: java

我的文件系统中有.war文件。我试图删除如下,

private void deleteWar(File warFile){       
 if(warFile.list().length != 0){
    String files[] = warFile.list();
    for (String temp : files) {                 
            File fileDelete = new File(warFile, temp);                  
            deleteWar(fileDelete);
    }               
    if(warFile.list().length==0){
        warFile.delete();
        System.out.println("Directory is deleted : " + warFile.getAbsolutePath));        
         }
     }              
 }

但我无法将.war文件删除为java.io.File.So有没有办法删除.war文件。

由于

4 个答案:

答案 0 :(得分:2)

您需要的唯一代码是warFile.delete()

尝试列出.war文件的内容是没有意义的,就像它是一个目录一样。事实并非如此。

只需删除该文件即可。如果它是打开或锁定的,或者您没有获得许可,则可能会失败,因此请进行调查。

答案 1 :(得分:0)

为什么不打开War文件的het parent directory并删除文件?您似乎试图在上面的代码中扩展后删除war目录。

答案 2 :(得分:0)

指定文件的绝对路径

示例:

  

C:/Users/Ryan/Downloads/someWarFile.war

我重新创建了问题,此代码删除了.war文件。

代码:

        String file = "C:/Users/Ryan/Downloads/someWarFile.war";
        File f = new File(file);

        if( f.exists() )
            System.out.println(file + " exists.");
        else
            System.out.println(file + " not exists.");

        if( f.delete() ) 
            System.out.println(file + " has been deleted");
        else
            System.out.println(file + " could not be deleted");

希望这有帮助!

答案 3 :(得分:0)

删除war文件有很多问题。

我假设您正在运行像tomcat或jetty这样的Web应用程序容器。 如果你在windows-maschine上运行这个容器,war文件我将被windows锁定,你无法在容器运行时删除该文件。

在tomcat-container中尝试反战文件锁定: http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

搜索资源锁定。

正如@EJP所提到的:file.delete()就是你应该需要的。