プログラムによるファイルのアクセス許可の変更
Java では、ファイルを動的に作成してそのアクセス許可を変更することは、特に細かい処理を必要とする環境で頻繁に発生するシナリオです。 -きめ細かなアクセス制御。これを実現するには、由緒ある chmod コマンドが思い浮かびます。しかし、Java でこの操作を実行する慣用的な方法はありますか?
Java 5
私たちの知る限り、Java 5 にはファイルを直接操作するための組み込み機能がありません。権限。 Java 5 でのファイル表現には主に File オブジェクトが含まれており、setReadable() や setWritable() などのメソッドが提供されますが、これらはユーザーレベルのアクセスにのみ影響し、グループまたはワールドのアクセス許可には影響しません。
Java 6
Java 6 の導入により、File オブジェクトには setExecutable() や setReadable() などの追加メソッドが追加されました。ファイル権限の粒度。ただし、これらの方法は、包括的な POSIX スタイルの権限管理を提供するにはまだ不十分です。
Java 7 以降
Java 7 と強化された New IO (NIO.2) を導入します。 )フレームワーク。これにより、開発者は POSIX 権限を含むファイル属性を完全に制御できるようになります。 PosixFilePermissions クラスとその関連メソッドを使用すると、基礎となるオペレーティング システムに合わせた方法でファイルのアクセス許可を操作できます。
EnumSet.of() またはよりユーザーフレンドリーな PosixFilePermissions を使用して、アクセス許可のセットを作成できます。 .fromString() メソッド。 FileAttribute を受け入れる Java API と統合するには、PosixFilePermissions.asFileAttribute() メソッドを使用して権限セットをラップすることを検討してください。
Java 7 の例:
Set<PosixFilePermission> ownerWritable = PosixFilePermissions.fromString("rw-r--r--"); FileAttribute<?> permissions = PosixFilePermissions.asFileAttribute(ownerWritable); Files.createFile(path, permissions);
以前の Javaバージョン
Java 7 より前のバージョンでは、オプションが制限されています。開発者の中には、JNI を使用したり、Runtime.exec() メソッドを介して外部コマンドを実行したりする人もいます。ただし、これらのアプローチでは、さらに複雑さとシステムへの依存関係が生じます。
結論として、Java 7 以降では、ファイルのアクセス許可をプログラムで管理するための堅牢で標準化された API が提供されますが、それ以前のバージョンでは、同様の機能を実現するには追加の努力が必要です。
以上がJava でファイルのアクセス許可をプログラムで変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。