いざファイルへアクセスしたら、ファイルの権限が不足していたりすることは、良くあります。
しかも、ファイルにアクセスできないなんて考えてなかったりして、プログラムが異常終了(例外)したりすることも、良くありますw
こんなことにならないためにも、ファイルへアクセスする前に、権限があるかどうか、チェックするようにしましょう(; ・`д・´)
Fileクラスを使ってファイルのパーミッション(権限)を調べるサンプル
C:\TESTフォルダにある2つのファイルのパーミッションを調べます。
読み込み、書き込み、実行、3つの権限の状態を調べて、結果を標準出力します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.io.File; public class FilePermissionTest { public static void main(String[] args) { checkPermission("c:\\test\\readonly.txt"); checkPermission("c:\\test\\normal.txt"); } public static void checkPermission(String fileName) { File file = new File(fileName); System.out.println("--------------------------------------"); System.out.println(fileName + "のファイルは..."); if(file.canRead()) { System.out.println("読み込み:できるよ~(^^♪"); }else { System.out.println("読み込み:できないよ~(TT)"); } if(file.canWrite()) { System.out.println("書き込み:できるよ~(^^♪"); }else { System.out.println("書き込み:できないよ~(TT)"); } if(file.canExecute()) { System.out.println("実 行:できるよ~(^^♪"); }else { System.out.println("実 行:できないよ~(TT)"); } System.out.println("--------------------------------------"); } } |
実行結果
C:\TESTフォルダにある2つのファイルのパーミッションを調べた結果が標準出力されます。
1 2 3 4 5 6 7 8 9 10 11 12 | -------------------------------------- c:\test\readonly.txtのファイルは... 読み込み:できるよ~(^^♪ 書き込み:できないよ~(TT) 実 行:できるよ~(^^♪ -------------------------------------- -------------------------------------- c:\test\normal.txtのファイルは... 読み込み:できるよ~(^^♪ 書き込み:できるよ~(^^♪ 実 行:できるよ~(^^♪ -------------------------------------- |
サンプルの解説
java.io.Fileクラスを使うと、ファイルのパーミッション(権限)を調べることができます。
boolean File#canRead()を使うと、そのファイルが読み込みできるか確認できます。trueが返れば、読み込みできます。
boolean File#canWrite()を使うとそのファイルが書き込みできるか確認できます。trueが返れば、書き込みできます。
boolean File#canExecute()を使うと、そのファイルが実行できるか確認できます。trueが返れば、実行できます。