javaコードからtomcatサーバーconf/Catalina/localhostにあるファイルを削除しようとすると、file.delete()は常にfalseを返します。しかし、file.exists()関数でファイルをチェックしている場合、trueを返します。私は例外を取得していません。なぜこれが起こっているのかお手伝いください。これに対する解決策は何ですか?Javaのfile.delete()はfalseを返しますが、file.exists()はtrueを返します
答えて
私はfile.deleteその後、JavaコードからのTomcatサーバー confに/カタリナ/ localhostの中に存在しているファイルを削除しようとしています()は常に はfalseを返します。しかし、私がfile.exists()関数でファイルをチェックしている場合、 はtrueを返します。
ほとんどの場合、あなたは、サーバー上のファイルを削除するための許可を持っていません。権限を確認してください。
f.delete()
がfalseを返した場合は、削除できない/削除できなかったことを意味し、f.exists()
がtrueを返してファイルは存在しますが、削除できません。 falseを返している原因削除機能
それは、ファイルが存在していることを意味するが、あなたのJavaプロセスがthat.Thatがある削除する権限を持っていけない理由の任意の数があります
Returns: true if and only if the file or directory is successfully deleted; false otherwise
その後、ファイルを削除するJavaプロセスへのアクセス許可を割り当てる方法を教えてください。とにかくコードでファイルを削除する必要があるからです。 – vishal
なぜファイルはできません削除される;それは存在しないかもしれません、それは空でないディレクトリかもしれません、あなたはそれを使用するすべてのリソースを閉じていない可能性があり、あなたのプログラムはそうする許可を持っていないかもしれません。
残念なことに、File.delete()
メソッドは、理由についてはほとんど情報を提供しません。それはあなたの周りを突きつけて把握するのはかなりあなた次第です。しかし、良いニュースがあります。あなたは最初にFile
を使用したくありません。
Java 7では、より堅牢なファイルアクセスAPIである新しいjava.nio.file
パッケージが導入されました。これは抽象的な概念Path
を提供し、具体的な操作をFiles
クラスに分離します。特に、削除が失敗する理由を説明する明確な例外を提起するために文書化されたFiles.delete()
を提供します。
Path
およびFiles
;あなたはあなたがうれしいでしょう。
ストリームを削除してから削除する必要があります。
例えば -
fileInputStream.close();
file.delete();
ディレクトリは、File.delete()
メソッドはエラーをスローせずにfalseを返します空でない場合。
削除する前に、ディレクトリをクリーンアップする必要があります。
- 1. file.getAbsolutePath()ではNullPointerExceptionがtrueを返しますが、file.exists()はtrueを返します
- 2. File.exists falseを返す
- 3. ファイルが存在すると、File.exists()はfalseを返します。
- 4. mysqli_query()がtrueを返すと、mysqli_fetch_row()はfalseを返します
- 5. ブール値( "false")はtrueを返します。
- 6. PHP is_writable()はtrueを返しますが、file_put_contents()はfalseを返します。
- 7. JQueryはtrueを返した後にfalseを返しますか?
- 8. 実際にtrueの場合、メソッドはfalseを返します。java
- 9. javascriptはtrueを返すか、falseを返します。
- 10. Excel UDFはTrueを返しますが、Falseを返しません。
- 11. intersectsBoxがfalseを返すとtrueを返します
- 12. なぜ 'Files.exists'はtrueを返しますが、 'File.exists'はfalseを返しますか?ファイル名がマルチバイト文字の場合のみ発生
- 13. File.Existsはファイルが存在しなくても常にtrueを返します
- 14. Rails - trueまたはfalseを返すメソッド
- 15. trueまたはfalseを返す問題
- 16. c#List.Existsは "false && true"でtrueを返します
- 17. filename.delete()はJAVAでfalseを返します
- 18. File.Existsが存在しないファイルに対してtrueを返す
- 19. 最初にFileNotFoundExcetionをスローしないと、file.exists()は常にtrueを返します。
- 20. QThreadはfinished()シグナルを出しますが、isRunning()はtrueを返し、isFinished()はfalseを返します。
- 21. NSFileManager.defaultManager()。fileExistsAtPathは、trueではなくfalseを返します。
- 22. JavaScriptの正規表現はfalseを返しますが、正規表現のテスターはtrueを返します
- 23. javascript hasOwnPropertyはfalseの代わりにtrueを返しますか?
- 24. jQueryコールバックはonclickのtrue/falseを返します
- 25. session_start():セッションコールバックはtrue/falseの戻り値を返します
- 26. なぜfile.existsはlist.filesにあってもFALSEを返しますか?
- 27. TreeSetはtrueを返すべきときにfalseを返しますか?
- 28. RubyとMongoDB:require 'uri'がfalseを返し、trueを返す必要があります
- 29. array_walkはtrueまたはfalseを返します。代わりに変数を返す必要があります
- 30. jQuery - クラスが存在し、true/falseを返します
file.delete()がfalseを返した場合、削除されていないことを意味します。したがって、file.exists()はtrueを返します。何も間違っていません – rajesh
ファイルのアクセス許可を確認してください。 – m0skit0
ファイルは存在しますが、削除することはできません。それで全部です。 – Ingo