Java-设置文件的权限

Java-设置文件的权限

Tags: Java

摘要

Java-设置文件的权限

文件权限介绍

文件权限跟系统相关: *nix , NTFS (windows) and FAT/FAT32, 都有不同类型的权限. Java提供了对它们通用部分的处理方法。

检查文件权限:

  1. file.canExecute(); – return true, 文件是可执行的; false is not.
  2. file.canWrite(); – return true, 文件是可写入的; false is not.
  3. file.canRead(); – return true, 文件是可读取的; false is not.

设置文件权限 :

  1. file.setExecutable(boolean); – true, 允许执行操作; false 表示禁止.
  2. file.setReadable(boolean); – true, 允许读取操作; false表示禁止.
  3. file.setWritable(boolean); – true, 允许写操作; false 表示禁止.

在*nix系统中,你可能需要设置比较详细的权限, 比如对一个文件或文件夹设置777权限, 但是java中还没有对应的方法, 但是你可以用下面不太优雅的方法实现:

Runtime.getRuntime().exec("chmod 777 file");

第一个7表示文件所有者的权限,4+2+1=7,即文件所有者对该文件有生杀大权,读(4)、写(2)、执行(1)随便。
第二个7表示文件所有者所在组的权限
第三个7表示其余人的权限

文件权限例子

package cn.javacore.io.file;

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

public class FilePermissionExample 
{
    public static void main( String[] args )
    {    
        try {

          File file = new File("/home/zhu/shellscript.sh");

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

代码下载

https://coding.net/u/javacore/p/java-io-study/git