web-dev-qa-db-ja.com

java.io.FileNotFoundException:(アクセスが拒否されました)

フォルダー内のファイルを読み取ろうとしていますが、プログラムを実行するとこの例外がスローされます。他のフォルダも試しました。同じ例外をスローします。

Exception in thread "main" Java.io.FileNotFoundException: C:\backup (Access is denied)
    at Java.io.FileInputStream.open(Native Method)
    at Java.io.FileInputStream.<init>(Unknown Source)
43
John

ディレクトリを開いて読み取ることはできません。isFile()メソッドとisDirectory()メソッドを使用して、ファイルとフォルダーを区別してください。 list()メソッドとlistFiles()メソッドを使用してフォルダーの内容を取得できます(それぞれファイル名とFilesの場合)、リストされたファイルのサブセットを選択するフィルターを指定することもできます。

41
rsp
  1. rspの返信を確認する
  2. ファイルを読み取る権限があることを確認してください
  3. ファイルが他のアプリケーションによってロックされていないかどうかを確認してください。あなたが窓にいる場合、それはほとんど関連しています。たとえば、メモ帳で開いているときにファイルを読み取ろうとすると、例外が発生する可能性があると思います
5
AlexR

また、ターゲットフォルダーのアクセス許可を確認することが重要な場合もあります。ユーザーに書き込み許可を与えることが解決策かもしれません。それは私のために働いた。

2
Thales Valias

ここに私が発見したばかりの落とし穴があります-他の誰かを助けるかもしれません。 Windowsを使用している場合、クラスフォルダーで暗号化を有効にしてはいけません! Tomcatはそれを好まないようです。クラスフォルダーを右クリックし、[プロパティ]を選択して、[詳細...]ボタンをクリックします。 [コンテンツを暗号化してデータを保護する]チェックボックスがオフになっていることを確認します。 Tomcatを再起動します。

それは私のために働いたので、ここでそれが他の誰かにも役立つことを願っています。

2
rexthestrange