2016-07-01 3 views
-1

解析した後にエラーのあるxmlファイルを削除しようとしています。解析プロセスは例外をスローします。問題はWindows OSでのみ発生します。 Linuxでは、削除が正しく機能します。 これはJavaで解析した後にエラーが発生したxmlファイルを削除する

try{ 
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 

    DocumentBuilder db = dbf.newDocumentBuilder(); 

    Document doc = (Document) db.parse(file); 
    } catch(Exception e){ 
    file.delete(); 
} 
+0

stacktraceを提供してください:http://stackoverflow.com/help/how-to-ask –

答えて

0

file.delete()が例外をスローし、私が使用したコードのですか?ファイルへのパスは正しいですか?

コードに問題があると、解析に問題がある場合(SAXException)、DocumentBuilderに指定したファイルが正しくない場合(IOException)、違いはありません。

+0

file.delete()は例外をスローしません。解析中に例外が発生します。ファイルパスも正しいです。問題はWindows OSでのみ発生します。別のキャッチブロックを追加してみました。 –

+0

私はあなたが解析しようとしていたファイルがまだ使用中であるとみなし、ファイルがロックされたままであるとWindowsが考えていると思いますが、間違っているかもしれません。私は例外をスローするときにparseメソッドがストリームを閉じるかどうかわかりません。 編集:DocumentBuilderにファイルを渡す代わりに、以前にFIleInputStreamを開き、パラメータで渡してファイルを削除する前に明示的に閉じてみます。 – Ephi

+0

私はファイルをデバッグしました。 delete文が実行されています。ファイルは削除されません。 –

関連する問題