疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java IO:程序修改文件权限


 

在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;
//http://java.sun.com/javase/6/docs/api/java/io/File.html
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:eclipseworkspaceJavaIO est1.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

(转载)