如何在Java中设置文件权限

在Java中,文件权限是特定于操作系统的:* nix,NTFS(windows)和FAT / FAT32,都具有不同类型的文件权限。 Java带有一些通用文件权限来处理它。

检查文件权限是否允许

  1. file.canExecute(); –返回true,文件是可执行的; 假不是。
  2. file.canWrite(); –返回true,文件可写; 假不是。
  3. file.canRead(); –返回true,文件可读; 假不是。

设置文件权限

  1. file.setExecutable(boolean); –正确,允许执行操作; 错误以禁止它。
  2. file.setReadable(boolean); –正确,允许读取操作; 错误以禁止它。
  3. file.setWritable(boolean); –正确,允许写操作; 错误以禁止它。

在* nix系统中,您可能需要配置更多有关文件权限的指定,例如,为文件或目录设置777权限,但是,Java IO类没有现成的方法,但是可以使用以下肮脏的解决方法:

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

文件权限示例

package com.mkyong.file;

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

public class FilePermissionExample 
{
    public static void main( String[] args )
    {	
    	try {
    		 
	      File file = new File("/mkyong/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();
	    }
    }
}

参考

  1. http://java.sun.com/javase/6/docs/api/java/io/File.html

翻译自: https://mkyong.com/java/how-to-set-the-file-permission-in-java/

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值