我創建了一個臨時文件夾,然後嘗試在我的Windows 7計算機中更改其權限。我有管理員權限。無法通過Java代碼更改文件夾的權限
public class FilePermissionExample
{
public static void main(String[] args)
{
try {
File file = File.createTempFile("temp", Long.toString(System.nanoTime()));
file.delete();
file.mkdir();
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();
}
}
}
輸出:
是execute允許:真
是寫允許:真
是讀允許:真
是execute允許:真
被寫允許:真
被讀允許: true
文件已存在。
預計:
是執行允許:真
被寫允許:真
是讀允許:真
是execute允許:假
被寫允許:假
是讀允許:假
我在使用hiverunner在windows中編寫配置單元測試時遇到類似的問題。任何人都可以提出建議
什麼返回方法setExecutable,setReadable和setWritable?如果使用setExecutable移除字符串會發生什麼? –
它們都返回布爾值。 '假'正在被所有制定者返回。 我不明白你的第二個問題。這些方法將布爾作爲參數而不是字符串。我沒有使用字符串 – user2150837
如果操作系統不支持操作,這些操作可能會失敗。我不知道如果Windows支持的可執行文件,所以我認爲不支持和setExecutable方法失敗的所有三個操作。 –