2012-04-24 52 views
0

我曾試圖這些語法更改文件的權限,但它爲什麼沒有工作?如何使用Java本機(CACLS)在Windows

你的建議,我真的很高興。

感謝之前。對不起英語不好。

package priviledge;

import java.io.File; import java.io.IOException;

/** * * @author DINA */ public class Main {

/** * @param args the command line arguments */ public static void main(String[] args) throws InterruptedException, IOException { File f = new File("C:/lala/images1.jpg"); permission(f); } public static void permission(File src) throws InterruptedException, IOException { // win32 command line variant Process p = Runtime.getRuntime().exec("cacls 000 " + src.getPath()); p.waitFor(); // p.waitFor()
+1

發生了什麼事?你得到了什麼? – MByD 2012-04-24 12:09:12

+0

我的目的是,這些語法可以將文件權限更改爲這些語法中的提及路徑。 – 2012-04-24 12:20:12

+0

我什麼也沒得到。當我在Windows資源管理器中檢查文件(images1.jpg)時,該文件的權限不起作用。 – 2012-04-24 12:22:15

回答

1

因爲cacls作品不同於chmod。特別是,第一個參數是文件名(這意味着您可以在名爲000的文件上嘗試這樣做)。使用ACL的Windows進一步說明了一些事情,因爲它們不適合三個八進制數。

查找的cacls文檔(只要在命令提示符下鍵入)解決您的命令行。

+0

我做到了,但是,我無法理解cacls在commandprompt中的幫助。如果我想更改組的文件權限,應該在java代碼中輸入什麼內容? – 2012-04-24 12:28:05

1

爲CACLS一組相同的用戶例如要授予完全權限的ABC組您可以鍵入「CACLS文件名/ g的ABC:F」可以CACLS的文檔上查看更多詳細信息

+0

文件名必須以其路徑完成? – 2012-04-26 09:51:11

+0

是作爲另一個例子做'CACLS C:\拉拉\ images1.jpg/E/G ABC:R'你寫的'調用Runtime.getRuntime()EXEC(「CACLS 」+ src.getPath()+「/ E/g ABC:R「);' – msam 2012-04-26 10:55:09

+0

好吧,我會試試看。謝謝。 – 2012-05-01 11:56:13

0

我也在研究一個涉及文件夾權限更改的項目。我嘗試了很多方法,但沒有像我期待的那樣工作,所以我想出了一個新的想法。對於您需要有關批處理文件的基本知識,

我想更改文件夾的權限,所以,這就是我所做的:

創建一個文本文件,在該文件中寫的命令,將其轉換成

File file = new File("server.bat"); 
 
    Desktop.getDesktop().open(file);

(工程爲Java 1.6或更高版本),刪除該批處理文件:一個批處理文件,以及使用執行它。

這可能是一個很長的路要做到這一點,但是這種方法可以在單次執行任何數量的命令。使用這種方法,您不必擔心工作目錄,因爲您可以在批處理文件中對其進行更改。這可能是一個壞主意,我是java新手,但我告訴過你我的想法。

+0

我不明白這是如何回答Q的。 – xlm 2015-09-19 01:59:42