Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在windows中使用java native(cacls)更改文件权限_Java_Windows_Native_File Permissions - Fatal编程技术网

如何在windows中使用java native(cacls)更改文件权限

如何在windows中使用java native(cacls)更改文件权限,java,windows,native,file-permissions,Java,Windows,Native,File Permissions,我试过这些语法,但为什么不起作用 我真的很高兴你的建议 谢谢你。对不起,英语不好 包装特权 导入java.io.File; 导入java.io.IOException /** * *@作者迪娜 */ 公共班机{ /** *@param指定命令行参数 */ 公共静态void main(字符串[]args)引发InterruptedException、IOException{ 文件f=新文件(“C:/lala/images1.jpg”); 许可(f); } 公共静态无效权限(文件src)引发Int

我试过这些语法,但为什么不起作用

我真的很高兴你的建议

谢谢你。对不起,英语不好

包装特权

导入java.io.File; 导入java.io.IOException

/** * *@作者迪娜 */ 公共班机{

/** *@param指定命令行参数 */ 公共静态void main(字符串[]args)引发InterruptedException、IOException{ 文件f=新文件(“C:/lala/images1.jpg”); 许可(f); } 公共静态无效权限(文件src)引发InterruptedException、IOException{ //win32命令行变量 进程p=Runtime.getRuntime().exec(“cacls 000”+src.getPath()); p、 waitFor();//p.waitFor()
因为
cacls
的工作方式与
chmod
不同。特别是,第一个参数是文件名(这意味着您可以在名为
000
的文件上尝试这样做)。使用ACL的Windows会更加复杂,因为它们不能很好地与三个八进制数匹配


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

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

我还参与了一个涉及更改文件夹权限的项目。我尝试了许多方法,但没有达到预期效果,因此,我提出了一个新想法。为此,您需要有关批处理文件的基本知识

我想更改文件夹的权限,因此,我做了以下操作:

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

File File=new文件(“server.bat”);

Desktop.getDesktop().open(file);
发生了什么事?你得到了什么?我的目的是,这些语法可以更改文件权限,就像这些语法中提到的路径一样。我什么也没有得到。当我检查文件时(images1.jpg)在windows资源管理器中,文件的权限不起作用。我这样做了,但是,我无法理解commandprompt中的cacls帮助。如果我想更改组的文件权限,我应该在java代码中键入什么?文件名必须填写其路径?是的,作为另一个示例执行
cacls C:\lala\images1.jpg/E/g ABC:R
Runtime.getRuntime().exec(“cacls”+src.getPath()+“/E/g ABC:R”);
好吧,如果我想让用户名成为dynamis,我的意思是如果不输入语法,我该怎么办?我根本看不出这是如何回答问题的。

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