0

我已经尝试过这些语法,但为什么它不起作用?

我真的很高兴你的建议。

之前谢谢。抱歉英语不好。

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()
4

3 回答 3

1

因为cacls工作方式与chmod. 特别是,第一个参数是文件名(这意味着您尝试在名为 的文件上执行此操作000)。使用 ACL 的 Windows 使事情进一步复杂化,因为它们不太适合三个八进制数。

查找文档cacls(只需在命令提示符下键入)并修复您的命令行。

于 2012-04-24T12:17:10.467 回答
1

对于 cacls,组与用户相同,例如,要授予 ABC 组完全权限,您可以键入“cacls 文件名 /g ABC:F”您可以查看有关 cacls 文档的更多详细信息

于 2012-04-24T13:51:25.923 回答
0

我还在从事一个涉及更改文件夹权限的项目。我尝试了很多方法,但都没有达到我的预期,所以我想出了一个新的想法。为此,您需要有关批处理文件的基本知识,

我想更改文件夹的权限,所以,这就是我所做的:

创建一个文本文件,在该文件中编写命令,将其转换为批处理文件,并使用以下命令执行它:

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

(适用于 java 1.6 或更高版本),删除了该批处理文件。

这样做可能还有很长的路要走,但是在这种方法中,可以一次执行任意数量的命令。使用这种方法,您不必担心工作目录,因为您可以在批处理文件中更改它。这可能是个坏主意,我是 Java 新手,但我告诉了你我的想法。

于 2015-09-19T01:57:18.840 回答