0

ファイルシステムに.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として削除できませんでした。.warファイルを削除する方法はありますか。

ありがとう

4

4 に答える 4

2

必要なコードはwarFile.delete().

.war ファイルの内容をディレクトリであるかのように一覧表示しようとしても意味がありません。そうではありません。

ファイルを削除するだけです。開いていたり、ロックされていたり、権限がない場合は失敗する可能性があるので調べてください。

于 2012-09-17T07:51:33.783 に答える
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");

お役に立てれば!

于 2012-09-17T07:42:42.877 に答える
0

Warファイルを開いhet parent directoryてファイルを削除してみませんか? 上記のコードで展開した後に war ディレクトリを削除しようとしているようです。

于 2012-09-17T07:34:42.480 に答える
0

war ファイルの削除には多くの問題があります。

tomcat や jetty のような web-application-container を実行していると仮定します。このコンテナーを Windows マシンで実行している場合、war ファイルは Windows によってロックされる可能性があり、コンテナーの実行中にファイルを削除することはできません。

tomcat-container で反戦ファイル ロックを試してください: http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

リソースのロックを検索します。

@EJP が述べたように、必要なのは file.delete() だけです。

于 2012-09-17T07:57:27.017 に答える