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. mysqli_query()がtrueを返すと、mysqli_fetch_row()はfalseを返します
- 4. PHP is_writable()はtrueを返しますが、file_put_contents()はfalseを返します。
- 5. javascriptはtrueを返すか、falseを返します。
- 6. Excel UDFはTrueを返しますが、Falseを返しません。
- 7. Rails - trueまたはfalseを返すメソッド
- 8. File.Existsが存在しないファイルに対してtrueを返す
- 9. QThreadはfinished()シグナルを出しますが、isRunning()はtrueを返し、isFinished()はfalseを返します。
- 10. NSFileManager.defaultManager()。fileExistsAtPathは、trueではなくfalseを返します。
- 11. TreeSetはtrueを返すべきときにfalseを返しますか?
- 12. jQuery - クラスが存在し、true/falseを返します
- 13. Crystal Reports - テストマシンでTestConnectivityがtrueを返しますが、テストマシンではfalseを返します
- 14. C#.NET - Membership.ValidateUserはWebでfalseを返します。ビジュアルスタジオでtrue
- 15. jQueryはfalseを返します。チェックボックスが
- 16. python正規表現がtrue/falseを返します
- 17. なぜ(true && 1)は1を返しますが、(1 && true)がtrueを返しますか?
- 18. pythonどのように値を否定するか:trueの場合はfalseを返し、falseの場合はtrueを返します。
- 19. PHPのファイルからjavacriptにtrue/falseを返します
- 20. HttpRequest.Content.IsMimeMultipartContent()がtrueを返すときにfalseを返す
- 21. file_exists()はfalseを返しますが、ファイルが存在します。
- 22. couchbaseクライアントストアはfalseを返します
- 23. IsPostBackは常にfalseを返します
- 24. SignedXmlチェックシグネチャはfalseを返します。
- 25. 'Contains'メソッドはfalseを返します
- 26. MediaWiki recursiveTagParseはfalseを返します
- 27. User.Identity.IsAuthenticatedはfalseを返します。
- 28. OpenEJB&JUnit:Sessioncontext.isCallerInRoleはallways falseを返します
- 29. VisualStateManager.GoToStateは常にfalseを返します
- 30. Exit Functionはfalseを返しますか?
file.delete()がfalseを返した場合、削除されていないことを意味します。したがって、file.exists()はtrueを返します。何も間違っていません – rajesh
ファイルのアクセス許可を確認してください。 – m0skit0
ファイルは存在しますが、削除することはできません。それで全部です。 – Ingo