語言

File 類別

定義

檔案與目錄路徑名稱的抽象表示。

[Android.Runtime.Register("java/io/File", DoNotGenerateAcw=true)]
public class File : Java.Lang.Object, IDisposable, Java.IO.ISerializable, Java.Lang.IComparable
[<Android.Runtime.Register("java/io/File", DoNotGenerateAcw=true)>]
type File = class
    inherit Object
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IComparable
繼承
屬性
實作

備註

檔案與目錄路徑名稱的抽象表示。

使用者介面與作業系統使用系統依賴的 <em>路徑名稱字串</em> 來命名檔案與目錄。 此類別呈現一種抽象且系統無關的階層路徑名稱觀點。 <EM>抽象路徑名稱</em> 包含兩個組成部分:

olli 一個可選的系統依賴 em前綴/em 字串,例如磁碟機指定符,&nbsp;UNIX 根目錄,或  對於一個Microsoft Windows UNC 路徑名稱,以及 li 一列零個或多個字串 em名稱/em。 </ol>

抽象路徑名稱中的第一個名稱可能是目錄名稱,或在Microsoft Windows UNC路徑名稱的情況下,則是主機名稱。 抽象路徑名稱中的每個後續名稱代表一個目錄;姓氏可以代表目錄或檔案。 <em>empty</em> 抽象路徑名稱沒有前綴,且名稱序列為空。

路徑名稱字串轉換為或從抽象路徑名稱轉換本質上是系統依賴的。 當抽象路徑名稱轉換成路徑名稱字串時,每個名稱之間會以一份預設 <的 em>分隔符/<em> 分隔。 預設的名稱分隔符由系統屬性 file.separator定義,並可在公開靜態欄位 {@link #separator} 及 {@link #separatorChar} 此類別中提供。 當路徑名稱字串轉換成抽象路徑名稱時,其中的名稱可能以預設的名稱分隔符或底層系統支援的其他名稱分隔符來分隔。

路徑名稱,無論是抽象形式還是字串形式,都可以是 em absolute/em< 或 >em<relative>/em<。><> 絕對路徑名稱是完整的,因為不需要其他資訊即可定位它所指的檔案。 相對地,相對路徑名稱必須以從其他路徑名稱取得的資訊來解釋。 預設情況下, java.io 套件中的類別總是以目前使用者目錄來解析相對路徑名稱。 此目錄由系統屬性user.dir命名,通常是呼叫 Java 虛擬機的目錄。

<抽象路徑名稱的 em>< 父 em> 可透過呼叫#getParent此類別的方法取得,該名稱包含路徑名稱的前綴及路徑名稱序列中除最後一個外的每個名稱。 每個目錄的絕對路徑名稱是任何 File 擁有絕對抽象路徑名稱的物件的祖先,該路徑名稱以該目錄的絕對路徑名稱開頭。 例如,抽象路徑名稱 "/usr" 所表示的目錄,是路徑名稱 "/usr/local/bin"所表示的目錄的祖先。

前綴概念用於處理 UNIX 平台上的根目錄,以及Microsoft Windows平台上的驅動指定符、根目錄與 UNC 路徑名稱,具體如下:

<UL>

<li> 對於 UNIX 平台,絕對路徑名稱的前綴總是 "/"。 相關路徑名稱沒有前綴。 代表根目錄的抽象路徑名稱包含前綴 "/" 和空的名稱序列。

<li> 對於Microsoft Windows平台,包含磁碟機指定符的路徑名稱前綴為磁碟機代號,若":"路徑名稱為絕對,則可能接著。"\\" UNC 路徑名稱的前綴為 "\\\\";主機名稱與共享名稱為名稱序列中的前兩個名稱。 若關聯路徑名稱未指定磁碟機,則不包含前綴。

</ul>

此類別的實例可能代表或不代表實際的檔案系統物件,如檔案或目錄。 如果它確實表示這樣的物件,則該物件位於 一個分割中。 分割區是檔案系統中作業系統特定的儲存區塊。 單一儲存裝置(例如實體磁碟機、快閃記憶體 CD-ROM)可能包含多個分割區。 該物件(若有)將位於由該路徑名稱絕對形式的祖先命名的分割「partName」>上。

檔案系統可能會對實際檔案系統物件(如讀取、寫入和執行)實施某些操作的限制。 這些限制統稱為 存取權限。 檔案系統可能對單一物件擁有多組存取權限。 例如,一組可能適用於物件 的擁有者,另一組則可能適用於所有其他使用者。 物件的存取權限可能導致此類別中的某些方法失敗。

類別的 File 實例是不變的;也就是說,一旦建立,物件 File 所代表的抽象路徑名稱將永遠不變。

<h3>與 java.nio.file 套件</h3 的互通性>

<cjava.nio.file></c> 套件定義了 Java 虛擬機存取檔案、檔案屬性及檔案系統的介面與類別。 此 API 可用來克服類別的 java.io.File 許多限制。 此#toPath toPath方法可用於取得利用物件Path所代表的抽象路徑定位檔案的 。File 所得結果 Path 可與類別結合 java.nio.file.Files 使用,提供更有效率且廣泛的額外檔案操作、檔案屬性及 I/O 例外存取,以協助在檔案操作失敗時診斷錯誤。

在 Android 上,將字串傳送檔案名稱給作業系統時會轉換成 UTF-8 位元組序列,而作業系統從各種 list 方法回傳的位元組序列則透過解碼成 UTF-8 位元組序列轉成字串。

新增於JDK1.0。

Java 文件 java.io.File。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
File(File, String)

從父抽象路徑名稱和子路徑名稱字串建立一個新 File 實例。

File(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

File(String, String)

從父路徑名稱字串和子路徑名稱字串建立新 File 實例。

File(String)

透過將給定的路徑名稱字串轉換成抽象路徑名稱來建立一個新 File 實例。

File(URI)

透過將給定File的 URI 轉換成抽象路徑名稱來建立一個新file:實例。

屬性

名稱 Description
AbsoluteFile

回傳此抽象路徑名稱的絕對形式。

AbsolutePath

回傳此檔案的絕對路徑。

CanonicalFile

回傳此抽象路徑名稱的典範形式。

CanonicalPath

回傳此抽象路徑名稱的典範路徑名稱字串。

Class

回傳此 Object的執行時類別。

(繼承來源 Object)
FreeSpace

回傳由此抽象路徑名稱命名的分割區中未分配位元組的數量。

Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsAbsolute

測試此抽象路徑名稱是否為絕對。

IsDirectory

測試由此抽象路徑名稱所標示的檔案是否為目錄。

IsFile

測試由此抽象路徑名稱所表示的檔案是否為正常檔案。

IsHidden

測試由此抽象路徑名稱命名的檔案是否為隱藏檔案。

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
JniPeerMembers

檔案與目錄路徑名稱的抽象表示。

Name

回傳由此抽象路徑名稱表示的檔案或目錄名稱。

Parent

回傳此抽象路徑名稱父目錄的路徑名稱字串,或 null 若該路徑名稱未命名父目錄,則回傳。

ParentFile

回傳此抽象路徑名稱父目錄的抽象路徑名稱,或 null 若該路徑名稱不命名父目錄,則回傳。

Path

將這個抽象路徑名稱轉換成路徑名稱字串。

PathSeparator

系統依賴的路徑分隔符,為方便而以字串表示。

PathSeparatorChar

系統依賴路徑分離器特性。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
Separator

系統依賴的預設名稱分隔字元,為方便起見以字串表示。

SeparatorChar

系統依賴的預設名稱分隔符字元。

ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

TotalSpace

回傳由此抽象路徑名稱命名的分割區大小。

UsableSpace

回傳此虛擬機在以抽象路徑名稱命名的分割區上可用的位元組數。

方法

名稱 Description
CanExecute()

測試應用程式是否能執行以此抽象路徑名稱表示的檔案。

CanRead()

測試應用程式是否能讀取此抽象路徑名稱所標記的檔案。

CanWrite()

測試應用程式是否能修改由此抽象路徑名稱所表示的檔案。

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
CompareTo(File)

以字典序方式比較兩個抽象路徑名稱。

Construct(JniObjectReference, JniObjectReferenceOptions)

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
CreateNewFile()

原子層面上建立一個新的、空的檔案,當且僅當該抽象路徑名稱尚未存在時。

CreateTempFile(String, String, File)

在指定的目錄中建立一個新的空檔案,並使用指定的前綴和後綴字串來產生其名稱。

CreateTempFile(String, String)

在預設的臨時檔案目錄中建立一個空檔案,並使用指定的前綴與後綴來產生其名稱。

Delete()

刪除由此抽象路徑名稱所標示的檔案或目錄。

DeleteOnExit()

請求刪除由此抽象路徑名稱標示的檔案或目錄,當虛擬機終止時。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
Equals(Object)

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
Exists()

測試由此抽象路徑名稱所標示的檔案或目錄是否存在。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
LastModified()

回傳由此抽象路徑名稱所表示的檔案最後修改的時間。

Length()

回傳由此抽象路徑名稱所表示的檔案長度。

List()

回傳一個字串陣列,命名以抽象路徑名稱表示的目錄中的檔案與目錄。

List(IFilenameFilter)

回傳一個字串陣列,命名該抽象路徑名稱的目錄中符合指定篩選條件的檔案與目錄。

ListAsync()

檔案與目錄路徑名稱的抽象表示。

ListAsync(IFilenameFilter)

檔案與目錄路徑名稱的抽象表示。

ListFiles()

回傳一組抽象路徑名稱陣列,代表由此抽象路徑名稱所代表的目錄中檔案。

ListFiles(IFileFilter)

回傳一組抽象路徑名稱陣列,代表該抽象路徑名稱目錄中符合指定過濾器的檔案與目錄。

ListFiles(IFilenameFilter)

回傳一組抽象路徑名稱陣列,代表該抽象路徑名稱目錄中符合指定過濾器的檔案與目錄。

ListFilesAsync()

檔案與目錄路徑名稱的抽象表示。

ListFilesAsync(IFileFilter)

檔案與目錄路徑名稱的抽象表示。

ListFilesAsync(IFilenameFilter)

檔案與目錄路徑名稱的抽象表示。

ListRoots()

回傳檔案系統的根節點。

ListRootsAsync()

檔案與目錄路徑名稱的抽象表示。

Mkdir()

建立以這個抽象路徑名稱命名的目錄。

Mkdirs()

建立以這個抽象路徑名稱命名的目錄,包括任何必要但不存在的父目錄。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
RenameTo(File)

重新命名由此抽象路徑名稱標示的檔案。

SetExecutable(Boolean, Boolean)

設定擁有者或所有人對此抽象路徑名稱的執行權限。

SetExecutable(Boolean)

一種方便的方法,用來設定擁有者執行此抽象路徑名稱的執行權限。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetLastModified(Int64)

設定由此抽象路徑名稱命名的檔案或目錄的最後修改時間。

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
SetReadable(Boolean, Boolean)

設定擁有者或所有人對此抽象路徑名稱的讀取權限。

SetReadable(Boolean)

一種方便地設定擁有者對此抽象路徑名稱的讀取權限的方法。

SetReadOnly()

以這個抽象路徑名稱標記檔案或目錄,使得只允許讀取操作。

SetWritable(Boolean, Boolean)

設定擁有者或所有人對此抽象路徑名稱的寫入權限。

SetWritable(Boolean)

一種方便的方法,用來設定擁有者對此抽象路徑名稱的寫入權限。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToPath()

回傳 Path java.nio.file.Path 由此抽象路徑構建的物件。

ToString()

回傳物件的字串表示。

(繼承來源 Object)
ToURI()

構造一個 file: 代表此抽象路徑名稱的 URI。

ToURL()
已淘汰.

將這個抽象路徑名稱轉換成網址 file: 。

UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IComparable.CompareTo(Object)

將此物件與指定的物件比較排序。

IJavaPeerable.Disposed()

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

檔案與目錄路徑名稱的抽象表示。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

檔案與目錄路徑名稱的抽象表示。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

檔案與目錄路徑名稱的抽象表示。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於