JavaTM 2 Platform
Standard Ed. 6

java.io
類別 FilePermission

java.lang.Object
  繼承者 java.security.Permission
      繼承者 java.io.FilePermission
所有已實作的介面:
Serializable, Guard

public final class FilePermission
extends Permission
implements Serializable

此類別表示對檔案和目錄的存取。FilePermission 由路徑名和對該路徑名有效的操作集合組成。

路徑名是授予指定操作的檔案或目錄的路徑名。以 "/*"(其中 "/" 是檔案分隔符字元,即 File.separatorChar)結尾的路徑名指示包含在該目錄中的所有檔案和目錄。以 "/-" 結尾的路徑名(遞歸地)指示包含在該目錄中的所有檔案和子目錄。由特殊標記 "<<ALL FILES>>" 組成的路徑名可比對任何檔案。

註:由單個 "*" 組成的路徑名指示當前目錄中的所有檔案,而由單個 "-" 組成的路徑名指示當前目錄中的所有檔案,並(遞歸地)指示包含在當前目錄中的所有檔案和子目錄。

將所要授予的操作以字元串的形式傳遞給建構子,該字元串包含由一個或多個用逗號分隔的關鍵字組成的列表。可能的關鍵字有 "read"、"write"、"execute" 和 "delete"。其含義定義如下:

read
讀權限
write
寫權限
execute
執行權限。允許調用 Runtime.exec。對應於 SecurityManager.checkExec
delete
刪除權限。允許調用 File.delete。對應於 SecurityManager.checkDelete

處理前會將操作字元串轉換為小寫字母。

在授予 FilePermission 權限時要小心。在對各種檔案和目錄授予讀存取權和(尤其是)寫存取權時,一定要慎重。對寫操作授予 "<<ALL FILES>>" 權限特別危險。這允許對整個檔案系統進行寫操作。事實上它甚至允許對系統中的二進制檔案(包括 JVM 運行時環境)進行替換。

請注意:程式碼總是可以讀取自身所在目錄(或該目錄的子目錄)中的檔案,不需要對其進行顯式授權。

從以下版本開始:
1.2
另請參見:
Permission, Permissions, PermissionCollection

建構子摘要
FilePermission(String path, String actions)
          創建具有指定操作的新 FilePermission 物件,path 是檔案或目錄的路徑名,actions 套件含對檔案或目錄授予的所需操作的列表,該列表由逗號分隔。
 
方法摘要
 boolean equals(Object obj)
          檢查兩個 FilePermission 物件是否相等。
 String getActions()
          返回操作的“規範化字元串表示形式”。
 int hashCode()
          返回此物件的雜湊碼值。
 boolean implies(Permission p)
          檢查 FilePermission 物件是否“隱含”指定的權限。
 PermissionCollection newPermissionCollection()
          返回用於存儲 FilePermission 物件的新 PermissionCollection 物件。
 
從類別 java.security.Permission 繼承的方法
checkGuard, getName, toString
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

FilePermission

public FilePermission(String path,
                      String actions)
創建具有指定操作的新 FilePermission 物件,path 是檔案或目錄的路徑名,actions 套件含對檔案或目錄授予的所需操作的列表,該列表由逗號分隔。可能的操作有 "read"、"write"、"execute" 和 "delete"。

以 "/*"(其中 "/" 是檔案分隔符,即 File.separatorChar)結尾的路徑名指示所有套件含在該目錄中的檔案和目錄。以 "/-" 結尾的路徑名(遞歸地)指示包含在該目錄中的所有檔案和子目錄。特殊路徑名 "<<ALL FILES>>" 與任意檔案都比對。

由單個 "*" 組成的路徑名指示當前目錄中的所有檔案,而由單個 "-" 組成的路徑名指示當前目錄中的所有檔案,並(遞歸地)指示包含在當前目錄中的所有檔案和子目錄。

包含空字元串的路徑名表示一個空路徑。

參數:
path - 檔案/目錄的路徑名。
actions - 操作字元串。
拋出:
IllegalArgumentException - 如果 actions 為 null 或空,或者包含一個除指定可能的操作之外的操作。
方法詳細資訊

implies

public boolean implies(Permission p)
檢查 FilePermission 物件是否“隱含”指定的權限。

更明確地說,如果此方法滿足以下條件,則返回 true:

指定者:
類別 Permission 中的 implies
參數:
p - 所要檢查的權限。
返回:
如果指定的權限不為 null 並且此物件隱含該權限,則返回 true;否則返回 false

equals

public boolean equals(Object obj)
檢查兩個 FilePermission 物件是否相等。檢查 obj 是否是一個 FilePermission,是否與此物件具有相同的路徑名和操作。

指定者:
類別 Permission 中的 equals
參數:
obj - 要與此物件進行相等性測試的物件。
返回:
如果 obj 是一個 FilePermission,並且與此 FilePermission 物件具有相同的路徑名和操作,則返回 true;否則返回 false
另請參見:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此物件的雜湊碼值。

指定者:
類別 Permission 中的 hashCode
返回:
此物件的雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

getActions

public String getActions()
返回操作的“規範化字元串表示形式”。也就是說,此方法總是以下列順序返回存在的操作:read、write、execute、delete。例如,如果此 FilePermission 物件允許寫和讀操作,則調用 getActions 將返回字元串 "read,write"。

指定者:
類別 Permission 中的 getActions
返回:
操作的規範化字元串表示形式。

newPermissionCollection

public PermissionCollection newPermissionCollection()
返回用於存儲 FilePermission 物件的新 PermissionCollection 物件。

FilePermission 物件必須以允許將它們按任意順序插入集合的方式來存儲,但同時也允許以有效(並一致)的方式實作 PermissionCollection 的 implies 方法。

例如,如果有兩個 FilePermissions:

  1. "/tmp/-", &\quot;read"
  2. "/tmp/scratch/foo", "write"

並且您正利用 FilePermission 權限調用 implies 方法:

   "/tmp/scratch/foo", "read,write", 
 
那麼 implies 函數必須對 "/tmp/-" 和 "/tmp/scratch/foo" 這兩種權限都進行考慮,因此有效權限是 "read,write",並且 implies 返回 true。FilePermission 的 "implies" 語義由此 newPermissionCollection 方法返回的 PermissionCollection 物件恰當地處理。

覆寫:
類別 Permission 中的 newPermissionCollection
返回:
適合存儲 FilePermissions 的新 PermissionCollection 物件。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only