Java - 読み込み権限と書き込み権限の確認と変更

読み込み権限の確認

対象のファイルの読み込み権限を確認するには File クラスの canRead メソッドを使用します。

public boolean canRead()
canRead メソッド
public boolean canRead()
この抽象パス名が示すファイルをアプリケーションが読み込めるかどうかを判定します。一部のプラットフォームでは、読み取り不可としてマークされたファイルの読み取りを許可する特別な権限を使用して Java 仮想マシンを起動できる場合があります。その結果、このメソッドはファイルに読み込み権限がない場合でも true を返す可能性があります。
返り値
この抽象パス名が示すファイルが存在し、さらにアプリケーションがそれを読み込める場合だけ true、そうでない場合は false。
例外
SecurityException - セキュリティ・マネージャが存在し、その SecurityManager.checkRead(java.lang.String) メソッドがファイルへの読み取りアクセスを拒否した場合。
import java.io.File;

class canReadTest{
  public static void main(String args[]){
    
    File file = new File("C:¥¥file.txt");
    
    if (file.canRead()){
      System.out.println("読み込み権限があります");
    }
    
  }
}
読み込み権限と書き込み権限の確認と変更

書き込み権限の確認

対象のファイルの書き込み権限を確認するには File クラスの canWrite メソッドを使用します。

public boolean canWrite()
canWrite メソッド
public boolean canWrite()
この抽象パス名が示すファイルをアプリケーションが変更できるかどうかを判定します。一部のプラットフォームでは、読み取り専用としてマークされたファイルの変更を許可する特別な権限を使用して Java 仮想マシンを起動できる場合があります。その結果、このメソッドはファイルが読み取り専用としてマークされている場合でも true を返す可能性があります。
返り値
ファイル・システムにこの抽象パス名が示すファイルが実際にあり、さらにアプリケーションがそのファイルに書き込める場合は true、そうでない場合は false。
例外
SecurityException - セキュリティ・マネージャが存在し、その SecurityManager.checkWrite(java.lang.String) メソッドがファイルへの書込みアクセスを拒否した場合。
import java.io.File;

class canWriteTest{
  public static void main(String args[]){
    
    File file = new File("C:¥¥file.txt");
    
    if (file.canWrite()){
      System.out.println("書き込み権限があります");
    }
    
  }
}
読み込み権限と書き込み権限の確認と変更

読み取り専用に権限を変更

対象のファイルを読み取り専用にするには File クラスの setReadOnly メソッドを使用します。

public boolean setReadOnly()
setReadOnly メソッド
public boolean setReadOnly()
この抽象パス名が示すファイル、またはディレクトリにマークを設定し、読み込みオペレーションだけが許可されるようにします。このメソッドを呼び出した後、ファイルまたはディレクトリはそれが削除されるか、書込みアクセスを許可するようにマークされるまで変更されません。一部のプラットフォームでは、読み取り専用としてマークされたファイルの変更を許可する特別な権限を使用して Java 仮想マシンを起動できる場合があります。読み込み専用ファイル、またはディレクトリが削除できるかどうかは、背後のシステムに依存します。
返り値
操作が成功した場合は true、それ以外の場合は false
例外
SecurityException - セキュリティ・マネージャが存在し、その SecurityManager.checkWrite(java.lang.String) メソッドが指定されたファイルへの書込みアクセスを拒否した場合。
import java.io.File;

class setReadOnlyTest{
  public static void main(String args[]){
    
    File file = new File("C:¥¥file.txt");
    
    if (file.setReadOnly()){
      System.out.println("読み取り専用に変更しました");
    }
    
  }
}
読み込み権限と書き込み権限の確認と変更

関連記事