在Java中,文件权限是特定于操作系统的:* nix,NTFS(windows)和FAT / FAT32,都具有不同类型的文件权限。 Java带有一些通用文件权限来处理它。
检查文件权限是否允许 :
- file.canExecute(); –返回true,文件是可执行的; 假不是。
- file.canWrite(); –返回true,文件可写; 假不是。
- file.canRead(); –返回true,文件可读; 假不是。
设置文件权限 :
- file.setExecutable(boolean); –正确,允许执行操作; 错误以禁止它。
- file.setReadable(boolean); –正确,允许读取操作; 错误以禁止它。
- file.setWritable(boolean); –正确,允许写操作; 错误以禁止它。
在* nix系统中,您可能需要配置更多有关文件权限的指定,例如,为文件或目录设置777权限,但是,Java IO类没有现成的方法,但是可以使用以下肮脏的解决方法:
Runtime.getRuntime().exec("chmod 777 file");
文件权限示例
package com.mkyong.file;
import java.io.File;
import java.io.IOException;
public class FilePermissionExample
{
public static void main( String[] args )
{
try {
File file = new File("/mkyong/shellscript.sh");
if(file.exists()){
System.out.println("Is Execute allow : " + file.canExecute());
System.out.println("Is Write allow : " + file.canWrite());
System.out.println("Is Read allow : " + file.canRead());
}
file.setExecutable(false);
file.setReadable(false);
file.setWritable(false);
System.out.println("Is Execute allow : " + file.canExecute());
System.out.println("Is Write allow : " + file.canWrite());
System.out.println("Is Read allow : " + file.canRead());
if (file.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
参考
翻译自: https://mkyong.com/java/how-to-set-the-file-permission-in-java/