|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.io.File
public class File
檔案和目錄路徑名的抽象表示形式。
使用者介面和作業系統使用與系統相關的路徑名字元串 來命名檔案和目錄。此類別呈現分層路徑名的一個抽象的、與系統無關的視圖。抽象路徑名 有兩個元件:
"/"
表示 UNIX 中的根目錄,"\\\\"
表示 Microsoft Windows UNC 路徑名。
路徑名字元串與抽象路徑名之間的轉換與系統有關。將抽象路徑名轉換為路徑名字元串時,每個名稱與下一個名稱之間用一個預設分隔符 隔開。預設名稱分隔符由系統屬性 file.separator
定義,可通過此類別的公共靜態欄位
和 separator
使其可用。將路徑名字元串轉換為抽象路徑名時,可以使用預設名稱分隔符或者底層系統支持的任何其他名稱分隔符來分隔其中的名稱。
separatorChar
無論是抽象路徑名還是路徑名字元串,都可以是絕對 路徑名或相對 路徑名。絕對路徑名是完整的路徑名,不需要任何其他資訊就可以定位它所表示的檔案。相反,相對路徑名必須使用取自其他路徑名的資訊進行解釋。預設情況下,java.io
套件中的類別總是根據當前使用者目錄來解析相對路徑名。此目錄由系統屬性 user.dir
指定,通常是 Java 虛擬機器的調用目錄。
調用此類別的 getParent()
方法可以獲取抽象路徑名的父 路徑名,它由路徑名前綴以及路徑名名稱序列中的每個名稱(最後一個除外)組成。對於任何具有絕對抽象路徑名的 File 物件,如果其絕對抽象路徑名以某個目錄的絕對路徑名開頭,那麼該目錄的絕對路徑名是該 File 物件的祖先。例如,抽象路徑名 "/usr" 表示的目錄是路徑名 "/usr/local/bin" 所表示目錄的一個祖先。
在處理 UNIX 平臺的根目錄,以及 Microsoft Windows 平臺的磁碟符、根目錄和 UNC 路徑名時,將用到前綴這一概念。如下所示:
"/"
。相對路徑名沒有前綴。表示根目錄的絕對路徑名的前綴為 "/"
且名稱序列為空。
":"
組成。如果路徑名是絕對路徑名,還可能後跟 "\\"
。UNC 路徑名的前綴是 "\\\\"
;主機名和共享名是名稱序列中的前兩個名稱。沒有指定驅動器的相對路徑名沒有前綴。
此類別的實例可能表示(也可能不表示)實際檔案系統物件,如檔案或目錄。如果它表示這種物件,那麼該物件駐留在一個分區 中。分區是檔案系統特定於作業系統的存儲分區。一個存儲設備(例如,物理磁碟驅動器、閃存、CD-ROM)可以包含多個分區。物件(如果有)將駐留在此路徑名(絕對形式)某個祖先指定的分區上。
檔案系統可以實作對實際檔案系統物件上的某些操作(比如,讀、寫、執行)進行限制。這些限制統稱為存取權限。檔案系統可以對一個物件設置多個存取權限。例如,一個設置可能適用於物件的所有者,另一個設置則可能適用於所有其他使用者。物件上的存取權限可能導致此類別的某些方法執行失敗。
File
類別的實例是不可變的;也就是說,一旦創建,File
物件表示的抽象路徑名將永不改變。
欄位摘要 | |
---|---|
static String |
pathSeparator
與系統有關的路徑分隔符,為了方便,它被表示為一個字元串。 |
static char |
pathSeparatorChar
與系統有關的路徑分隔符。 |
static String |
separator
與系統有關的預設名稱分隔符,為了方便,它被表示為一個字元串。 |
static char |
separatorChar
與系統有關的預設名稱分隔符。 |
建構子摘要 | |
---|---|
File(File parent,
String child)
根據 parent 抽象路徑名和 child 路徑名字元串創建一個新 File 實例。 |
|
File(String pathname)
通過將給定路徑名字元串轉換為抽象路徑名來創建一個新 File 實例。 |
|
File(String parent,
String child)
根據 parent 路徑名字元串和 child 路徑名字元串創建一個新 File 實例。 |
|
File(URI uri)
通過將給定的 file: URI 轉換為一個抽象路徑名來創建一個新的 File 實例。 |
方法摘要 | |
---|---|
boolean |
canExecute()
測試應用程序是否可以執行此抽象路徑名表示的檔案。 |
boolean |
canRead()
測試應用程序是否可以讀取此抽象路徑名表示的檔案。 |
boolean |
canWrite()
測試應用程序是否可以修改此抽象路徑名表示的檔案。 |
int |
compareTo(File pathname)
按字母順序比較兩個抽象路徑名。 |
boolean |
createNewFile()
當且僅當不存在具有此抽象路徑名指定名稱的檔案時,不可分地創建一個新的空檔案。 |
static File |
createTempFile(String prefix,
String suffix)
在預設臨時檔案目錄中創建一個空檔案,使用給定前綴和後綴產生其名稱。 |
static File |
createTempFile(String prefix,
String suffix,
File directory)
在指定目錄中創建一個新的空檔案,使用給定的前綴和後綴字元串產生其名稱。 |
boolean |
delete()
刪除此抽象路徑名表示的檔案或目錄。 |
void |
deleteOnExit()
在虛擬機器終止時,請求刪除此抽象路徑名表示的檔案或目錄。 |
boolean |
equals(Object obj)
測試此抽象路徑名與給定物件是否相等。 |
boolean |
exists()
測試此抽象路徑名表示的檔案或目錄是否存在。 |
File |
getAbsoluteFile()
返回此抽象路徑名的絕對路徑名形式。 |
String |
getAbsolutePath()
返回此抽象路徑名的絕對路徑名字元串。 |
File |
getCanonicalFile()
返回此抽象路徑名的規範形式。 |
String |
getCanonicalPath()
返回此抽象路徑名的規範路徑名字元串。 |
long |
getFreeSpace()
返回此抽象路徑名指定的分區中未分派的位元組數。 |
String |
getName()
返回由此抽象路徑名表示的檔案或目錄的名稱。 |
String |
getParent()
返回此抽象路徑名父目錄的路徑名字元串;如果此路徑名沒有指定父目錄,則返回 null 。 |
File |
getParentFile()
返回此抽象路徑名父目錄的抽象路徑名;如果此路徑名沒有指定父目錄,則返回 null 。 |
String |
getPath()
將此抽象路徑名轉換為一個路徑名字元串。 |
long |
getTotalSpace()
返回此抽象路徑名指定的分區大小。 |
long |
getUsableSpace()
返回此抽象路徑名指定的分區上可用於此虛擬機器的位元組數。 |
int |
hashCode()
計算此抽象路徑名的雜湊碼。 |
boolean |
isAbsolute()
測試此抽象路徑名是否為絕對路徑名。 |
boolean |
isDirectory()
測試此抽象路徑名表示的檔案是否是一個目錄。 |
boolean |
isFile()
測試此抽象路徑名表示的檔案是否是一個標準檔案。 |
boolean |
isHidden()
測試此抽象路徑名指定的檔案是否是一個隱藏檔案。 |
long |
lastModified()
返回此抽象路徑名表示的檔案最後一次被修改的時間。 |
long |
length()
返回由此抽象路徑名表示的檔案的長度。 |
String[] |
list()
返回一個字元串陣列,這些字元串指定此抽象路徑名表示的目錄中的檔案和目錄。 |
String[] |
list(FilenameFilter filter)
返回一個字元串陣列,這些字元串指定此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。 |
File[] |
listFiles()
返回一個抽象路徑名陣列,這些路徑名表示此抽象路徑名表示的目錄中的檔案。 |
File[] |
listFiles(FileFilter filter)
返回抽象路徑名陣列,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。 |
File[] |
listFiles(FilenameFilter filter)
返回抽象路徑名陣列,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。 |
static File[] |
listRoots()
列出可用的檔案系統根。 |
boolean |
mkdir()
創建此抽象路徑名指定的目錄。 |
boolean |
mkdirs()
創建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。 |
boolean |
renameTo(File dest)
重新命名此抽象路徑名表示的檔案。 |
boolean |
setExecutable(boolean executable)
設置此抽象路徑名所有者執行權限的一個便捷方法。 |
boolean |
setExecutable(boolean executable,
boolean ownerOnly)
設置此抽象路徑名的所有者或所有使用者的執行權限。 |
boolean |
setLastModified(long time)
設置此抽象路徑名指定的檔案或目錄的最後一次修改時間。 |
boolean |
setReadable(boolean readable)
設置此抽象路徑名所有者讀權限的一個便捷方法。 |
boolean |
setReadable(boolean readable,
boolean ownerOnly)
設置此抽象路徑名的所有者或所有使用者的讀權限。 |
boolean |
setReadOnly()
標記此抽象路徑名指定的檔案或目錄,從而只能對其進行讀操作。 |
boolean |
setWritable(boolean writable)
設置此抽象路徑名所有者寫權限的一個便捷方法。 |
boolean |
setWritable(boolean writable,
boolean ownerOnly)
設置此抽象路徑名的所有者或所有使用者的寫權限。 |
String |
toString()
返回此抽象路徑名的路徑名字元串。 |
URI |
toURI()
建構一個表示此抽象路徑名的 file: URI。 |
URL |
toURL()
已過時。 此方法不會自動轉義 URL 中的非法字元。建議新的程式碼使用以下方式將抽象路徑名轉換為 URL:首先通過 toURI 方法將其轉換為 URI,然後通過 URI.toURL 方法將 URI 裝換為 URL。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final char separatorChar
file.separator
值的第一個字元。在 UNIX 系統上,此欄位的值為 '/'
;在 Microsoft Windows 系統上,它為 '\\'
。
System.getProperty(java.lang.String)
public static final String separator
separatorChar
。
public static final char pathSeparatorChar
path.separator
值的第一個字元。此字元用於分隔以路徑列表 形式給定的檔案序列中的檔案名。在 UNIX 系統上,此欄位為 ':'
;在 Microsoft Windows 系統上,它為 ';'
。
System.getProperty(java.lang.String)
public static final String pathSeparator
pathSeparatorChar
。
建構子詳細資訊 |
---|
public File(String pathname)
File
實例。如果給定字元串是空字元串,那麼結果是空抽象路徑名。
pathname
- 路徑名字元串
NullPointerException
- 如果 pathname
參數為 null
public File(String parent, String child)
File
實例。
如果 parent
為 null
,則創建一個新的 File
實例,這與調用以給定 child
路徑名字元串作為參數的單參數 File
建構子效果一樣。
否則,parent
路徑名字元串用於表示目錄,child
路徑名字元串用於表示目錄或檔案。如果 child
路徑名字元串是絕對路徑名,則用與系統有關的方式將它轉換為一個相對路徑名。如果 parent
是空字元串,則通過將 child
轉換為抽象路徑名,並根據與系統有關的預設目錄解析結果來創建新的 File
實例。否則,將每個路徑名字元串轉換為一個抽象路徑名,並根據父抽象路徑名解析子抽象路徑名。
parent
- 父路徑名字元串child
- 子路徑名字元串
NullPointerException
- 如果 child
為 null
public File(File parent, String child)
File
實例。
如果 parent
為 null
,則創建一個新的 File
實例,這與調用給定 child
路徑名字元串的單參數 File
建構子的效果一樣。
否則,parent
抽象路徑名用於表示目錄,child
路徑名字元串用於表示目錄或檔案。如果 child
路徑名字元串是絕對路徑名,則用與系統有關的方式將它轉換為一個相對路徑名。如果 parent
是空抽象路徑名,則通過將 child
轉換為抽象路徑名,並根據與系統有關的預設目錄解析結果來創建新的 File
實例。否則,將每個路徑名字元串轉換為一個抽象路徑名,並根據父抽象路徑名解析子抽象路徑名。
parent
- 父抽象路徑名child
- 子路徑名字元串
NullPointerException
- 如果 child
為 null
public File(URI uri)
file: URI 的具體形式與系統有關,因此,由此建構子執行的轉換也與系統有關。
對於某個給定抽象路徑名 f,可以保證:
new File( f.只要原始抽象路徑名、URI 和新抽象路徑名都是在同一 Java 虛擬機器(或者它的不同調用)中創建的。但是,當在某一作業系統上的虛擬機器中創建的 file: URI 在不同作業系統上的虛擬機器中被轉換為抽象路徑名時,這種關係通常是不成立的。toURI
()).equals( f.getAbsoluteFile
())
uri
- 一個絕對分層 URI,由一個等於 "file" 的 scheme、非空(null)的 path 元件,以及未定義的 authority、query 和 fragment 元件組成
NullPointerException
- 如果 uri 為 null
IllegalArgumentException
- 如果關於參數的前提不成立toURI()
,
URI
方法詳細資訊 |
---|
public String getName()
public String getParent()
null
。
抽象路徑名的父 路徑名由路徑名的前綴(如果有),以及路徑名名稱序列中最後一個名稱以外的所有名稱組成。如果名稱序列為空,那麼該路徑名沒有指定父目錄。
null
public File getParentFile()
null
。
抽象路徑名的父 路徑名由路徑名的前綴(如果有),以及路徑名名稱序列中最後一個名稱以外的所有名稱組成。如果名稱序列為空,那麼該路徑名沒有指定父目錄。
null
public String getPath()
預設名稱分隔符
分隔名稱序列中的名稱。
public boolean isAbsolute()
"/"
,那麼該路徑名是絕對路徑名。在 Microsoft Windows 系統上,如果路徑名的前綴是後跟 "\\"
的磁碟符,或者是 "\\\\"
,那麼該路徑名是絕對路徑名。
true
;否則返回 false
public String getAbsolutePath()
如果此抽象路徑名已經是絕對路徑名,則返回該路徑名字元串,這與
方法一樣。如果此抽象路徑名是空抽象路徑名,則返回當前使用者目錄的路徑名字元串,該目錄由系統屬性 getPath()
user.dir
指定。否則,使用與系統有關的方式解析此路徑名。在 UNIX 系統上,根據當前使用者目錄解析相對路徑名,可使該路徑名成為絕對路徑名。在 Microsoft Windows 系統上,根據路徑名指定的當前驅動器目錄(如果有)解析相對路徑名,可使該路徑名成為絕對路徑名;否則,可以根據當前使用者目錄解析它。
SecurityException
- 如果無法存取所需的系統屬性值。isAbsolute()
public File getAbsoluteFile()
new File(this.getAbsolutePath()
)
。
SecurityException
- 如果無法存取所需的系統屬性值。public String getCanonicalPath() throws IOException
規範路徑名是絕對路徑名,並且是惟一的。規範路徑名的準確定義與系統有關。如有必要,此方法首先將路徑名轉換為絕對路徑名,這與調用 getAbsolutePath()
方法的效果一樣,然後用與系統相關的方式將它映射到其惟一路徑名。這通常涉及到從路徑名中移除多餘的名稱(比如 "." 和 "..")、解析符號連接(對於 UNIX 平臺),以及將驅動器號轉換為標準大小寫形式(對於 Microsoft Windows 平臺)。
每個表示現存檔案或目錄的路徑名都有一個惟一的規範形式。每個表示不存在檔案或目錄的路徑名也有一個惟一的規範形式。不存在檔案或目錄路徑名的規範形式可能不同於創建檔案或目錄之後同一路徑名的規範形式。同樣,現存檔案或目錄路徑名的規範形式可能不同於刪除檔案或目錄之後同一路徑名的規範形式。
IOException
- 如果發生 I/O 錯誤(可能是因為建構規範路徑名需要進行檔案系統查詢)
SecurityException
- 如果無法存取所需的系統屬性值,或者存在安全管理器,且其 SecurityManager.checkRead(java.io.FileDescriptor)
方法拒絕對檔案進行讀存取public File getCanonicalFile() throws IOException
new File(this.getCanonicalPath()
)
。
IOException
- 如果發生 I/O 錯誤(可能是因為建構規範路徑名需要進行檔案系統查詢)
SecurityException
- 如果無法存取所需的系統屬性值,或者存在安全管理器,且其 SecurityManager.checkRead(java.io.FileDescriptor)
方法拒絕對檔案進行讀存取@Deprecated public URL toURL() throws MalformedURLException
toURI
方法將其轉換為 URI,然後通過 URI.toURL
方法將 URI 裝換為 URL。
file:
URL。該 URL 的具體形式與系統有關。如果可以確定此抽象路徑名表示的檔案是一個目錄,那麼所得 URL 將以斜槓結束。
MalformedURLException
- 如果無法將路徑解析為 URLtoURI()
,
URI
,
URI.toURL()
,
URL
public URI toURI()
該 URI 的具體形式與系統有關。如果可以確定此抽象路徑名表示的檔案是一個目錄,那麼所得 URI 將以斜槓結束。
對於某個給定抽象路徑名 f,可保證:
new只要原始抽象路徑名、URI 和新抽象路徑名都是在同一 Java 虛擬機器(或者它的不同調用)中創建的。但是,由於抽象路徑名與系統有關的特性,當在某一作業系統上的虛擬機器中創建的 file: URI 在不同作業系統上的虛擬機器中被轉換為抽象路徑名時,這種關係通常是不成立的。File
( f.toURI()).equals( f.getAbsoluteFile
())
SecurityException
- 如果不能存取請求的系統屬性值。File(java.net.URI)
,
URI
,
URI.toURL()
public boolean canRead()
true
;否則返回 false
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對檔案進行讀存取public boolean canWrite()
true
;否則返回 false
。
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對檔案進行寫存取public boolean exists()
true
;否則返回 false
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對檔案或目錄進行寫存取public boolean isDirectory()
true
;否則返回 false
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對檔案進行讀存取public boolean isFile()
true
;否則返回 false
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對檔案進行讀存取public boolean isHidden()
'.'
) 開頭,則認為該檔案被隱藏。在 Microsoft Windows 系統上,如果在檔案系統中檔案被標記為隱藏,則認為該檔案被隱藏。
true
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對檔案進行讀存取public long lastModified()
long
值,用與時間點(1970 年 1 月 1 日,00:00:00 GMT)之間的毫秒數表示;如果該檔案不存在,或者發生 I/O 錯誤,則返回 0L
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對檔案進行讀存取public long length()
0L
。對於表示特定於系統的實體(比如設備或管道)的路徑名,某些作業系統可能返回 0L
。
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對檔案進行讀存取public boolean createNewFile() throws IOException
註:此方法不應該 用於檔案鎖定,因為所得協議可能無法可靠地工作。應該使用 FileLock
機制替代。
true
;如果指定的檔案已經存在,則返回 false
IOException
- 如果發生 I/O 錯誤
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對檔案進行寫存取public boolean delete()
true
;否則返回 false
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkDelete(java.lang.String)
方法拒絕對檔案進行刪除存取public void deleteOnExit()
一旦請求了刪除操作,就無法取消該請求。所以應小心使用此方法。
註:此方法不應該 用於檔案鎖定,因為所得協議可能無法可靠地工作。應該使用 FileLock
設施替代。
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkDelete(java.lang.String)
方法拒絕對檔案進行刪除存取delete()
public String[] list()
如果此抽象路徑名不表示一個目錄,那麼此方法將返回 null
。否則返回一個字元串陣列,每個陣列元素對應目錄中的每個檔案或目錄。表示目錄本身及其父目錄的名稱不包括在結果中。每個字元串是一個檔案名,而不是一條完整路徑。
不保證所得陣列中的相同字元串將以特定順序出現,特別是不保證它們按字母順序出現。
null
。
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對目錄進行讀存取public String[] list(FilenameFilter filter)
list()
方法相同。如果給定 filter
為 null
,則接受所有名稱。否則,當且僅當在此抽象路徑名及其表示的目錄中的檔案名或目錄名上調用過濾器的 FilenameFilter.accept(java.io.File, java.lang.String)
方法返回 true
時,該名稱才滿足過濾器。
filter
- 檔案名過濾器
filter
能接受的檔案和目錄。如果目錄為空,或者沒有名稱被過濾器接受,那麼該陣列將為空。如果抽象路徑名不表示一個目錄,或者發生 I/O 錯誤,則返回 null
。
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對目錄進行讀存取public File[] listFiles()
如果此抽象路徑名不表示一個目錄,那麼此方法將返回 null
。否則返回一個 File
物件陣列,每個陣列元素對應目錄中的每個檔案或目錄。表示目錄本身及其父目錄的名稱不包括在結果中。得到的每個抽象路徑名都是根據此抽象路徑名,使用
建構子建構的。所以,如果此路徑名是絕對路徑名,那麼得到的每個路徑名都是絕對路徑名;如果此路徑名是相對路徑名,那麼得到的每個路徑名都是相對於同一目錄的路徑名。
File(File, String)
不保證所得陣列中的相同字元串將以特定順序出現,特別是不保證它們按字母順序出現。
null
。
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對目錄進行讀存取public File[] listFiles(FilenameFilter filter)
listFiles()
方法相同。如果給定 filter
為 null
,則接受所有路徑名。否則,當且僅當在此抽象路徑名及其表示的目錄中的檔案名或目錄名上調用過濾器的 FilenameFilter.accept(java.io.File, java.lang.String)
方法返回 true
時,該路徑名才滿足過濾器。
filter
- 檔案名過濾器
null
。
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對目錄進行讀存取public File[] listFiles(FileFilter filter)
listFiles()
方法相同。如果給定 filter
為 null
,則接受所有路徑名。否則,當且僅當在路徑名上調用過濾器的 FileFilter.accept(java.io.File)
方法返回 true
時,該路徑名才滿足過濾器。
filter
- 檔案過濾器
null
。
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法拒絕對目錄進行讀存取public boolean mkdir()
true
;否則返回 false
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String)
方法不允許創建指定的目錄public boolean mkdirs()
true
;否則返回 false
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String)
方法不允許驗證指定目錄和所有必需的父目錄是否存在;或者 SecurityManager.checkWrite(java.lang.String)
方法不允許創建指定的目錄和所有必需的父目錄public boolean renameTo(File dest)
此方法行為的許多方面都是與平臺有關的:重命名操作無法將一個檔案從一個檔案系統移動到另一個檔案系統,該操作不是不可分的,如果已經存在具有目標抽象路徑名的檔案,那麼該操作可能無法獲得成功。應該始終檢查返回值,以確保重命名操作成功。
dest
- 指定檔案的新抽象路徑名
true
;否則返回 false
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對原路徑名和新路徑名進行寫存取
NullPointerException
- 如果參數 dest
為 null
public boolean setLastModified(long time)
所有平臺都支持將檔案修改時間設置為最接近的秒數,而且一些平臺會提供更精確的值。該參數將被截取,以滿足受支持的精度。如果該操作成功,並且沒有在檔案上發生其他干擾操作,則下一次調用
方法將返回傳遞給此方法的 lastModified()
time
參數(可能被截取)。
time
- 新的最後一次修改時間,用與時間點(1970 年 1 月 1 日,00:00:00 GMT)之間的毫秒數表示
true
;否則返回 false
IllegalArgumentException
- 如果該參數為負
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對指定檔案進行寫存取public boolean setReadOnly()
true
;否則返回 false
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對指定檔案進行寫存取public boolean setWritable(boolean writable, boolean ownerOnly)
writable
- 如果為 true
,則設置允許寫操作的存取權限;如果為 false
,則不允許寫操作。ownerOnly
- 如果為 true
,則寫權限只適用於所有者的寫權限;否則適用於所有使用者。如果底層檔案系統不能區分所有者寫權限與其他寫權限,那麼無論該參數為何值,寫權限將適用於所有使用者。
true
。如果使用者不具有更改此抽象路徑名存取權限的權限,那麼操作將失敗。
SecurityException
- 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對指定檔案進行寫存取。public boolean setWritable(boolean writable)
此方法 file.setWritable(arg) 形式的調用與以下調用的行為完全相同:
file.setWritable(arg, true)
writable
- 如果為 true
,則設置允許寫操作的存取權限;如果為 false
,則不允許寫操作。
true
。如果使用者不具有更改此抽象路徑名存取權限的權限,那麼操作將失敗。
SecurityException
- 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對檔案進行寫存取。public boolean setReadable(boolean readable, boolean ownerOnly)
readable
- 如果為 true
,則設置允許讀操作的存取權限;如果為 false
,則不允許讀操作。ownerOnly
- 如果為 true
,則讀權限只適用於所有者的讀權限;否則適用於所有使用者。如果底層檔案系統不能區分所有者讀權限與其他讀權限,那麼無論該參數為何值,讀權限將適用於所有使用者。
true
。如果使用者不具有更改此抽象路徑名存取權限的權限,那麼操作將失敗。如果 readable
為 false
,並且底層檔案系統不實作讀權限,那麼操作也將失敗。
SecurityException
- 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對檔案進行寫存取。public boolean setReadable(boolean readable)
此方法 file.setReadable(arg) 形式的調用與以下調用的行為完全相同:
file.setReadable(arg, true)
readable
- 如果為 true
,則設置允許讀操作的存取權限;如果為 false
,則不允許讀操作。
true
。如果使用者不具有更改此抽象路徑名存取權限的權限,那麼操作將失敗。如果 readable
為 false
,並且底層檔案系統不實作讀權限,那麼操作也將失敗。
SecurityException
- 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對檔案進行寫存取。public boolean setExecutable(boolean executable, boolean ownerOnly)
executable
- 如果為 true
,則設置允許執行操作的存取權限;如果為 false
,則不允許執行操作。ownerOnly
- 如果為 true
,則執行權限只適用於所有者的執行權限;否則適用於所有使用者。如果底層檔案系統不能區分所有者執行權限與其他執行權限,那麼無論該參數為何值,執行權限將適用於所有使用者。
true
。如果使用者不具有更改此抽象路徑名存取權限的權限,那麼操作將失敗。如果 executable
為 false
,並且底層檔案系統不實作執行權限,那麼操作也將失敗。
SecurityException
- 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對檔案進行寫存取。public boolean setExecutable(boolean executable)
此方法 file.setExcutable(arg) 形式的調用與以下調用的行為完全相同:
file.setExecutable(arg, true)
executable
- 如果為 true
,則設置允許執行操作的存取權限;如果為 false
,則不允許執行操作。
true
。如果使用者不具有更改此抽象路徑名存取權限的權限,那麼操作將失敗。如果 executable
為 false
,並且底層檔案系統不實作執行權限,那麼操作也將失敗。
SecurityException
- 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String)
方法拒絕對檔案進行寫存取。public boolean canExecute()
true
。
SecurityException
- 如果安全管理器存在且其 SecurityManager.checkExec(java.lang.String)
方法拒絕對檔案進行執行存取。public static File[] listRoots()
特定 Java 平臺可以支持零個或更多個分層組織的檔案系統。每個檔案系統有一個 root
目錄,可以從這裡到達檔案系統中的所有其他檔案。例如,Windows 平臺為每個活動驅動器提供了一個根目錄;UNIX 平臺只有一個根目錄,即 "/"
。可用檔案系統根的設置受各種系統級操作的影響,比如可移動介質的插入和彈出,以及斷開或卸載那些物理磁碟或虛擬磁碟。
此方法返回一個 File
物件陣列,這些物件表示可用檔案系統根的根目錄。可以保證本地機器上物理存在的任何檔案的規範路徑名都以此方法返回的根之一開始。
位於其他一些機器上的檔案的規範路徑名是通過遠端檔案系統協議(比如 SMB 或 NFS)存取的,它們可能以此方法返回的根之一開始,也可能不是這樣。如果遠端檔案的路徑名在語法上無法與本地檔案的路徑名進行區分,那麼它將以此方法返回的根之一開始。例如,此方法將返回表示 Windows 平臺上映射為網路驅動器根目錄的 File
物件,而不返回包含 UNC 路徑名的 File
物件。
與此類別中的大多數方法不同,此方法不拋出安全性異常。如果存在安全管理器,且其
方法拒絕對特定根目錄進行讀存取,那麼該目錄將不會出現在結果中。
SecurityManager.checkRead(java.lang.String)
File
物件陣列;如果無法確定根集,則返回 null
。如果沒有檔案系統,那麼該陣列將為空。public long getTotalSpace()
SecurityException
- 如果安裝了安全管理器,並且安全管理器拒絕 RuntimePermission
("getFileSystemAttributes"),或者其 SecurityManager.checkRead(String)
方法拒絕對此抽象路徑名指定的檔案進行讀存取public long getFreeSpace()
返回的未分派位元組數是一個提示,而不是一個保證,只能使用這些位元組的一部分。未分派位元組數很可能在此調用後立即與實際相符。某些外部 I/O 操作可能使其與實際不符,這些操作包括那些在此虛擬機器外部系統上進行的操作。此方法不保證對此檔案系統的寫操作將成功。
getTotalSpace()
返回的總檔案系統大小。
SecurityException
- 如果安裝了安全管理器,並且安全管理器拒絕 RuntimePermission
("getFileSystemAttributes"),或者其 SecurityManager.checkRead(String)
方法拒絕對此抽象路徑名指定的檔案進行讀存取public long getUsableSpace()
getFreeSpace()
相比,此方法能更準確地估計可實際寫入的新資料數。
返回的可用位元組數是一個提示,而不是一個保證,只能使用這些位元組的一部分。未分派位元組數很可能在此調用後立即與實際相符。某些外部 I/O 操作可能使其與實際不符,這些操作包括那些在此虛擬機器外部系統上進行的操作。此方法不保證對此檔案系統的寫操作將成功。
getFreeSpace()
。
SecurityException
- 如果安裝了安全管理器,並且安全管理器拒絕 RuntimePermission
("getFileSystemAttributes"),或者其 SecurityManager.checkRead(String)
方法拒絕對此抽象路徑名指定的檔案進行讀存取public static File createTempFile(String prefix, String suffix, File directory) throws IOException
在指定目錄中創建一個新的空檔案,使用給定的前綴和後綴字元串產生其名稱。如果此方法成功返回,則可以保證:
deleteOnExit()
方法。
prefix
參數至少必須是三個位元組長。建議前綴使用一個短的、有意義的字元串,比如 "hjb"
或 "mail"
。suffix
參數可以為 null
,在這種情況下,將使用後綴 ".tmp"
。
要創建新檔案,可能首先要調整前綴和後綴,使其滿足底層平臺的限制。如果前綴太長,則將它截斷,但前三個字元將始終保留。如果後綴太長,則將它截斷,但如果它以句點字元 ('.'
) 開始,則該句點以及後跟的前三個字元將始終保留。進行了這些調整後,通過連接前綴、五個或更多個內部產生的字元以及後綴,便產生了新檔案的名稱。
如果 directory
參數為 null
,則使用與系統有關的預設臨時檔案目錄。預設臨時檔案目錄由系統屬性 java.io.tmpdir
指定。在 UNIX 系統上,此屬性的預設值通常是 "/tmp"
或 "/var/tmp"
;在 Microsoft Windows 系統上,該值通常是 "C:\\WINNT\\TEMP"
。在調用 Java 虛擬機器時,可為此系統屬性提供不同的值,但不保證使用程序更改此屬性會對此方法使用的臨時目錄產生影響。
prefix
- 用於產生檔案名的前綴字元串;必須至少是三字元長suffix
- 用於產生檔案名的後綴字元串;可以為 null
,在這種情況下,將使用後綴 ".tmp"
directory
- 將創建的檔案所在的目錄;如果使用預設臨時檔案目錄,則該參數為 null
IllegalArgumentException
- 如果 prefix
參數包含的字元少於三個
IOException
- 如果無法創建檔案
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String)
方法不允許創建檔案public static File createTempFile(String prefix, String suffix) throws IOException
createTempFile(prefix, suffix, null)
。
prefix
- 用於產生檔案名的前綴字元串;必須至少是三字元長suffix
- 用於產生檔案名的後綴字元串;可以為 null
,在這種情況下,將使用後綴 ".tmp"
IllegalArgumentException
- 如果 prefix
參數包含的字元少於三個
IOException
- 如果無法創建檔案
SecurityException
- 如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String)
方法不允許創建檔案public int compareTo(File pathname)
Comparable<File>
中的 compareTo
pathname
- 將與此抽象路徑名進行比較的抽象路徑名
public boolean equals(Object obj)
null
,而是一個與此抽象路徑名表示相同的檔案或目錄的抽象路徑名時,返回 true
。兩個抽象路徑名是否相等取決於底層系統。在 UNIX 系統上,比較路徑名時,字母大小寫通常很重要,而在 Microsoft Windows 系統上,這通常不重要。
Object
中的 equals
obj
- 要與此抽象路徑名進行比較的物件
true
;否則返回 false
Object.hashCode()
,
Hashtable
public int hashCode()
1234321
的雜湊碼的異或。在 Microsoft Windows 系統上,雜湊碼等於其轉換為小寫的路徑名字元串和十進制值 1234321
的雜湊碼的異或。在將路徑名字元串轉換為小寫時不考慮語言環境。
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
getPath()
方法返回的字元串。
Object
中的 toString
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。