国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java 如何為文件及文件夾添加權限

java 如何為文件及文件夾添加權限

2022-01-25 00:58JSON_ZJS Java教程

這篇文章主要介紹了java 如何為文件及文件夾添加權限的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

java 為文件及文件夾添加權限

/**
* 增加權限,使路徑可上傳文件
*/
public static void addChmod777(String filePath) throws IOException {
	if (!System.getProperty("os.name").startsWith("Win")) {
		String cmdGrant = "chmod 777 " + filePath;
		BaseLogMethod.logInfo(TAG, "File Augmentation after Moving:" + cmdGrant);
		Runtime.getRuntime().exec(cmdGrant);
	}
}
/**
* 增加權限,使路徑及子路徑都有權限
*/
public static void addRChmod777(String filePath) throws IOException {
	if (!System.getProperty("os.name").startsWith("Win")) {
		String cmdGrant = "chmod -R 777 " + filePath;
		BaseLogMethod.logInfo(TAG, ".addRChmod777: File Augmentation after Moving:" + cmdGrant);
		Runtime.getRuntime().exec(cmdGrant);
	}
}

 

java 修改文件所有者及其權限

1.設置所有者

管理文件所有者

Files.getOwner()和Files.setOwner()方法

要使用UserPrincipal來管理文件的所有者

(1)更改文件的所有者

java 如何為文件及文件夾添加權限

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.FileOwnerAttributeView;
import java.nio.file.attribute.UserPrincipal;
import java.nio.file.attribute.UserPrincipalLookupService;
public class Main {
  public static void main(String[] args) {
      Path path = Paths.get("/www/test1.txt");
      FileOwnerAttributeView foav = Files.getFileAttributeView(path,
              FileOwnerAttributeView.class);
      try {
          UserPrincipal owner = foav.getOwner();
          System.out.format("Original owner  of  %s  is %s%n", path,
                  owner.getName());
          FileSystem fs = FileSystems.getDefault();
          UserPrincipalLookupService upls = fs.getUserPrincipalLookupService();
          UserPrincipal newOwner = upls.lookupPrincipalByName("abc");
          foav.setOwner(newOwner);
          UserPrincipal changedOwner = foav.getOwner();
          System.out.format("New owner  of  %s  is %s%n", path,
                  changedOwner.getName());
      }catch (IOException e){
          e.printStackTrace();
      }
  }
}

輸出

java 如何為文件及文件夾添加權限

查看文件詳細信息

java 如何為文件及文件夾添加權限

2.ACL文件權限

Windows上支持ACL類型文件屬性

使用AclFileAttributeView的

  • getAcl()方法獲取文件的AclEntry列表
  • setAcl()方法設置文件的AclEntry列表

(1)讀取文件e:/test1.txt的ACL條目

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.AclEntry;
import java.nio.file.attribute.AclEntryPermission;
import java.nio.file.attribute.AclFileAttributeView;
import java.util.List;
import java.util.Set;
public class Main {
  public static void main(String[] args) {       
      Path path = Paths.get("e:/test1.txt");
      AclFileAttributeView aclView = Files.getFileAttributeView(path,
              AclFileAttributeView.class);
      if (aclView == null) {
          System.out.format("ACL view  is not  supported.%n");
          return;
      }
      try {
          List<AclEntry> aclEntries = aclView.getAcl();
          for (AclEntry entry : aclEntries) {
              System.out.format("Principal: %s%n", entry.principal());
              System.out.format("Type: %s%n", entry.type());
              System.out.format("Permissions are:%n");
              Set<AclEntryPermission> permissions = entry.permissions();
              for (AclEntryPermission p : permissions) {
                  System.out.format("%s %n", p);
              }
          }
      } catch (IOException e) {
          e.printStackTrace();
      }
  }
}

輸出結果為

Principal: BUILTIN\Administrators (Alias)
Type: ALLOW
Permissions are:
WRITE_DATA
WRITE_OWNER
APPEND_DATA
SYNCHRONIZE
WRITE_ATTRIBUTES
EXECUTE
READ_DATA
DELETE_CHILD
READ_ATTRIBUTES
WRITE_NAMED_ATTRS
WRITE_ACL
DELETE
READ_ACL
READ_NAMED_ATTRS
Principal: NT AUTHORITY\SYSTEM (Well-known group)
Type: ALLOW
Permissions are:
WRITE_DATA
WRITE_OWNER
APPEND_DATA
SYNCHRONIZE
WRITE_ATTRIBUTES
EXECUTE
READ_DATA
DELETE_CHILD
READ_ATTRIBUTES
WRITE_NAMED_ATTRS
WRITE_ACL
DELETE
READ_ACL
READ_NAMED_ATTRS
Principal: NT AUTHORITY\Authenticated Users (Well-known group)
Type: ALLOW
Permissions are:
WRITE_DATA
READ_ATTRIBUTES
APPEND_DATA
WRITE_NAMED_ATTRS
SYNCHRONIZE
WRITE_ATTRIBUTES
EXECUTE
DELETE
READ_DATA
READ_ACL
READ_NAMED_ATTRS
Principal: BUILTIN\Users (Alias)
Type: ALLOW
Permissions are:
READ_ATTRIBUTES
SYNCHRONIZE
EXECUTE
READ_DATA
READ_ACL
READ_NAMED_ATTRS

(2)為指定用戶添加新的ACL條目

e:/test1.txt為用戶abc添加DATA_READ和DATA_ WRITE權限

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.*;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import static java.nio.file.attribute.AclEntryPermission.READ_DATA;
import static java.nio.file.attribute.AclEntryPermission.WRITE_DATA;
public class Main {
  public static void main(String[] args) {
      
      Path path = Paths.get("e:/test1.txt");
      AclFileAttributeView aclView = Files.getFileAttributeView(path,
              AclFileAttributeView.class);
      if (aclView == null) {
          System.out.format("ACL view  is not  supported.%n");
          return;
      }
      try {
          UserPrincipal bRiceUser = FileSystems.getDefault()
                  .getUserPrincipalLookupService().lookupPrincipalByName("abc");
          Set<AclEntryPermission> permissions = EnumSet.of(READ_DATA, WRITE_DATA);
          AclEntry.Builder builder = AclEntry.newBuilder();
          builder.setPrincipal(bRiceUser);
          builder.setType(AclEntryType.ALLOW);
          builder.setPermissions(permissions);
          AclEntry newEntry = builder.build();
          List<AclEntry> aclEntries = aclView.getAcl();
          aclEntries.add(newEntry);
          aclView.setAcl(aclEntries);
      }catch (IOException e){
          e.printStackTrace();
      }
  }
}

輸出結果比剛才多了

Principal: hkgi-PC\abc (User)
Type: ALLOW
Permissions are:
WRITE_DATA
READ_DATA

3.POSIX文件權限

UNIX支持POSIX標準文件屬性

PosixFilePermission枚舉類型定義九個常量,每個權限組件一個。

九個常數命名為X_Y,其中X是OWNER,GROUP和OTHERS,Y是READ,WRITE和EXECUTE。

  • PosixFilePermissions的toString()方法將一組PosixFilePermission枚舉常量轉換為rwxrwxrwx形式的字符串
  • PosixFileAttributeView的setPermissions()方法用來設置權限

(1)輸出/www/test1.txt的權限

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.*;
import java.util.Set;
public class Main {
  public static void main(String[] args) {
      Path path = Paths.get("/www/test1.txt");
      PosixFileAttributeView posixView = Files.getFileAttributeView(path,
              PosixFileAttributeView.class);
      try{
          PosixFileAttributes attribs = posixView.readAttributes();
          Set<PosixFilePermission> permissions = attribs.permissions();
          // Convert the file permissions into the rwxrwxrwx string form
          String rwxFormPermissions = PosixFilePermissions.toString(permissions);
          // Print the permissions
          System.out.println(rwxFormPermissions);
      }catch (IOException e){
          e.printStackTrace();
      }
  }
}

輸出結果

rw-r--r--

(2)讀取和更新名為test的文件權限

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.*;
import java.util.EnumSet;
import java.util.Set;
import static java.nio.file.attribute.PosixFilePermission.*;
public class Main {
  public static void main(String[] args) {
      Path path = Paths.get("/www/test1.txt");
      PosixFileAttributeView posixView = Files.getFileAttributeView(path,
              PosixFileAttributeView.class);
      if (posixView == null) {
          System.out.format("POSIX attribute view  is not  supported%n.");
          return;
      }
      System.out.println("old:");
      readPermissions(posixView);
      updatePermissions(posixView);
      System.out.println("new:");
      readPermissions(posixView);
  }
  public static void readPermissions(PosixFileAttributeView posixView) {
      try{
          PosixFileAttributes attribs;
          attribs = posixView.readAttributes();
          Set<PosixFilePermission> permissions = attribs.permissions();
          // Convert the set of posix file permissions into rwxrwxrwx form
          String rwxFormPermissions = PosixFilePermissions.toString(permissions);
          System.out.println(rwxFormPermissions);
      }catch (IOException e){
          e.printStackTrace();
      }
  }
  public static void updatePermissions(PosixFileAttributeView posixView) {
      try {
          Set<PosixFilePermission> permissions = EnumSet.of(OWNER_READ, OWNER_WRITE,OWNER_EXECUTE,
                  GROUP_READ,GROUP_WRITE);
          posixView.setPermissions(permissions);
          System.out.println("Permissions set successfully.");
      }catch (IOException e){
          e.printStackTrace();
      }
  }
}

輸出結果

old:
rw-r-----
Permissions set successfully.
new:
rwxrw----

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/JSON_ZJS/article/details/115708211

延伸 · 閱讀

精彩推薦
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
主站蜘蛛池模板: 天天爽天天操 | 精品第一页 | 一区二区av在线 | 亚洲视频久久久 | 日本在线观看一区 | 日韩激情一区二区三区 | 久久久91 | 国内精品久久久久久久影视红豆 | 91亚洲国产成人久久精品网站 | 亚洲乱码国产乱码精品精的特点 | 久久伊人精品网 | 不卡久久 | 91亚洲成人 | 国产1区2区3区 | 欧美午夜精品久久久久久浪潮 | 最新国产一区二区 | 国产一区二区三区在线免费观看 | 性欧美另类| 激情视频在线观看 | 一本大道久久a久久精二百 国产欧美视频一区二区 | 亚洲国产精品久久久 | 亚洲第一黄 | 精品中文字幕在线 | 精品国产青草久久久久福利 | 黄色国产一级片 | 在线观看中文字幕 | 在线亚洲一区 | 国产精品高潮呻吟久久av野狼 | 国产视频中文字幕 | 亚洲精品视频在线 | 午夜精品久久久久 | 国产成人精品久久二区二区91 | t66y最新地址一地址二69 | 国产亚洲精品久久久久动 | 天天天操 | 国产视频在线播放 | 色女人av | 国产精品二区一区二区aⅴ污介绍 | av免费网站在线观看 | 天天综合久久 | 麻豆二区|