Java提供了许多方法调用来检查和更改文件的权限, 例如可以将只读文件更改为具有写权限。当用户想要限制文件上允许的操作时, 需要更改文件许可权。例如, 由于用户不再希望编辑文件, 因此可以将文件许可权从写更改为只读。
检查当前文件权限
文件可以是以下允许的权限的任意组合:
可执行文件:
测试应用程序是否可以执行此抽象路径名表示的文件。
语法如下:
public boolean canExecute()
Returns: true if and only if the abstract path name
exists and the application is allowed to execute the file
可读性:
测试应用程序是否可以读取此抽象路径名表示的文件。
语法如下:
public boolean canRead()
Returns: true if and only if the file specified by this
abstract path name exists and can be read by the application; false otherwise
可写的:
测试应用程序是否可以修改此抽象路径名表示的文件。
语法如下:
public boolean canWrite()
Returns: true if and only if the file system actually
contains a file denoted by this abstract path name and
the application is allowed to write to the file; false otherwise.
例如, 文件可以读取和写入, 但不能执行。这是一个Java程序, 用于获取与文件关联的当前权限。
// Java program to check the current file permissions.
import java.io.*;
public class Test
{
public static void main(String[] args)
{
// creating a file instance
File file = new File( "C:\\Users\\Mayank\\Desktop\\1.txt" );
// check if the file exists
boolean exists = file.exists();
if (exists == true )
{
// printing the permissions associated with the file
System.out.println( "Executable: " + file.canExecute());
System.out.println( "Readable: " + file.canRead());
System.out.println( "Writable: " + file.canWrite());
}
else
{
System.out.println( "File not found." );
}
}
}
输出如下
Executable: true
Readable: true
Writable: true
更改文件权限
文件可以具有以下权限的任意组合:
- 可执行的
- 可读的
- 可写的
以下是更改与文件关联的权限的方法:
setExecutable
一种方便的方法, 用于为此抽象路径名设置所有者的执行权限。
public boolean setExecutable(boolean executable)
Description:
Parameters: executable - If true, sets the access
permission to allow execute operations;
if false to disallow execute operations
Returns: true if and only if the operation succeeded.
如果用户没有更改此抽象路径名的访问权限的权限, 则该操作将失败。如果executable为false, 并且基础文件系统未实现执行权限, 则该操作将失败。
setReadable:
为该抽象路径名设置所有者的读取权限的便捷方法。
public boolean setReadable(boolean readable)
Parameters: readable - If true, sets the access permission to
allow read operations; if false to disallow read operations
Returns: true if and only if the operation succeeded.
如果用户没有更改此抽象路径名的访问权限的权限, 则该操作将失败。如果可读为false, 并且基础文件系统未实现读取权限, 则该操作将失败。
setWritable:
一种方便的方法, 用于为此抽象路径名设置所有者的写许可权。
public boolean setWritable(boolean writable)
Parameters: writable - If true, sets the access permission
to allow write operations; if false to disallow write operations
Returns: true if and only if the operation succeeded.
如果用户没有更改此抽象路径名的访问权限的权限, 则该操作将失败。
// Java program to change the file permissions
import java.io.*;
public class Test
{
public static void main(String[] args)
{
// creating a new file instance
File file = new File( "C:\\Users\\Mayank\\Desktop\\1.txt" );
// check if file exists
boolean exists = file.exists();
if (exists == true )
{
// changing the file permissions
file.setExecutable( true );
file.setReadable( true );
file.setWritable( false );
System.out.println( "File permissions changed." );
// printing the permissions associated with the file currently
System.out.println( "Executable: " + file.canExecute());
System.out.println( "Readable: " + file.canRead());
System.out.println( "Writable: " + file.canWrite());
}
else
{
System.out.println( "File not found." );
}
}
}
输出如下
File permissions changed.
Executable: true
Readable: true
Writable: false
参考文献:
- 甲骨文
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。