2011-10-21 7 views
0

何らかの理由で、私はFile.delete()とFile.renameto(File)に問題があります。例:Javaのファイルを削除できません

private void doWork(){ 
    File inputFile = new File("resources/custom/inputFile.txt"); 
    System.out.println(inputFile.delete()); 
} 

これは私のためにfalseを返し、ファイルを削除しません。

私はこのファイルを開いたり、他の場所で使用していません。私はそれを削除できない理由を理解していません。他の誰かがこれに遭遇したのか、問題についての洞察を持っていますか?行を追加

+0

を追加する場合は、それを削除する権限を持っていますか助ける?この

private void doWork(){ File inputFile = new File("resources\\custom\\inputFile.txt"); System.out.println(inputFile.delete()); } 

を試してみてください –

+0

ファイルが存在し、パスが正しいことは確かですか? –

+0

あなたは完全に解決されたと思いますか?ファイルとディレクトリに対するアクセス権が削除されていますか? –

答えて

3

試してみてください。

System.out.println(inputFile.getCanonicalPath()); 

これは(ルートから)実際のパスを印刷し、多分それはあなたが期待しているパスではないことを明らかにします。

+0

実行ファイルが、削除しようとしているファイルに関連する正しいディレクトリで実行されていることを確認してください。正規のファイル名を使用すると、間違ったディレクトリで実行することができなくなります。 –

-1

も、それはあなたがしようとするとキャッチ

+3

これは問題ではありません。 Javaでは、スラッシュを基になるOSの規約に変換します。 try/catchも役に立ちません。それが 'RuntimeException'の場合、それはバブルアップします - 削除がfalseを返すことは例外がないことを意味します。 –

+0

その良い練習を試してキャッチを使用する私はこれは唯一の意味はない、おそらくファイルがありません、おそらくいくつかのアクセス許可が不足している – salahy

+0

あなたが実際に*例外を*何かを行う場合は、 *それを捕まえるべきではありません。また、 'SecurityException'はランタイム例外であるため、この場所でキャッチしたくないかもしれません。 –

関連する問題