我的文件系统中有.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文件。
由于
答案 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()就是你应该需要的。