2014-10-30 40 views
0

是否有方法递归地设置路径上的777权限(以便路径上的所有目录获得777权限)而不使用NIO。在不使用NIO的情况下以递归方式在java中设置777权限

我们可以通过在文件类的方法,如下面

import java.io.File; 
import java.nio.file.FileSystems; 


public class permissionTest { 

    public static void main(String [] args){ 
     String dir = "./leaf1/leaf2/leaf3"; 

     File baseDir = new File(dir); 

     boolean success = baseDir.mkdirs(); 
     if (success) { 
      System.out.println("Created dirs"); 
      baseDir.setExecutable(true, false); 
      baseDir.setReadable(true, false); 
      baseDir.setWritable(true, false); 
     } 
     else{ 
      System.out.println("Not created"); 
     } 

    } 

} 

上面给出了777 leaf3,如何给777 leaf1 & leaf2以及做一个给定文件的最后一片叶子?在一个单一的命令?

+0

你不想使用多个命令设置权限的原因是什么? – Bartvbl 2014-10-30 08:42:23

+0

应该有一个更好的方式,如chmod -R :),对于深度嵌套路径也不是很好 – nikel 2014-10-30 08:42:40

+0

你想给777给当前父亲和2个父亲?通常情况下,相反,应用777父目录和他的所有子女 – ortis 2014-10-30 08:43:06

回答

4
Process p; 
     try { 
      p = Runtime.getRuntime().exec("chmod 777 -R ./leaf1"); 
      p.waitFor(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
+0

这也可能会造成“附带损害”:它也可能对不想更改的文件夹设置权限。 – Bartvbl 2014-10-30 08:43:50

+0

是的,我正在寻找一种基于java的方法...不使用chmod。我认为这种方法更慢 – nikel 2014-10-30 08:49:56

+0

@Bartvbi正是OP所要求的:“路径上的所有目录都获得777权限”。 – EJP 2014-10-30 08:51:03

相关问题