在java中,文件的权限对于不同的操作系统有不同的权限。 java 处理一些通用的权限。
检查文件是否允许:- file.canExecute(); – return true, file is executable; false is not.
- file.canWrite(); – return true, file is writable; false is not.
- file.canRead(); – return true, file is readable; false is not.
设置文件权限:- file.setExecutable(boolean); – true, allow execute operations; false to disallow it.
- file.setReadable(boolean); – true, allow read operations; false to disallow it.
- file.setWritable(boolean); – true, allow write operations; false to disallow it.
在*nix系统中,你可能需要配置更加明确的文件权限,如设置某个文件的权限为777.但是,java IO类没有相关方法。不过可以使用以下workaround:
- Runtime.getRuntime().exec("chmod 777 file");
查看和修改文件权限完整例子:- package org.hnrsc.io;
-
-
import java.io.File;
-
import java.io.IOException;
-
-
//
-
public class JavaFileIO {
-
-
public static void main(String[] args) {
-
try {
-
String filename = "test1.txt";
-
String finalfile = "";
-
String workingDir = System.getProperty("user.dir");
-
-
-
finalfile = workingDir + File.separator + filename;
-
-
System.out.println("Final filepath: " + finalfile);
-
-
File file = new File(finalfile);
-
if (file.createNewFile()) {
-
System.out.println("File is created!");
-
} else {
-
System.out.println("File already exists.");
-
}
-
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());
-
-
} catch (IOException e) {
-
e.printStackTrace();
-
}
-
}
-
}
本程序执行结果有点让人疑惑,为何设置以下属性为false后,只有writable变为false了?
- file.setExecutable(false);
- file.setReadable(false);
- file.setWritable(false);
- Final filepath: N:\eclipse\workspace\JavaIO\test1.txt
-
File already exists.
-
Is Execute allow : true
-
Is Write allow : true
-
Is Read allow : true
-
--------------------------
-
Is Execute allow : true
-
Is Write allow : false
-
Is Read allow : true
阅读(3651) | 评论(1) | 转发(1) |