語言

ContentResolver.OpenFileDescriptor 方法

定義

多載

名稱 Description
OpenFileDescriptor(Uri, String)

打開原始檔案描述符以存取 URI 下的資料。

OpenFileDescriptor(Uri, String, CancellationSignal)

打開原始檔案描述符以存取 URI 下的資料。

OpenFileDescriptor(Uri, String)

打開原始檔案描述符以存取 URI 下的資料。

[Android.Runtime.Register("openFileDescriptor", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;", "")]
public Android.OS.ParcelFileDescriptor? OpenFileDescriptor(Android.Net.Uri uri, string mode);
[<Android.Runtime.Register("openFileDescriptor", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;", "")>]
member this.OpenFileDescriptor : Android.Net.Uri * string -> Android.OS.ParcelFileDescriptor

參數

uri
Uri

想要開啟的 URI。

mode
String

檔案模式的字串表示法。 可以是「r」、「w」、「wt」、「wa」、「rw」或「rwt」。 請注意,這些實作的具體實作可能因提供者而異——例如,「w」可能會截斷也可能不會截斷。

傳回

會回傳一個新的 ParcelFileDescriptor,指向該檔案,或 null 是如果供應商最近當機。 這個描述符屬於你,完成後你有責任關閉它。

屬性

例外狀況

若 URI 下無檔案或模式無效,則拋出 FileNotFoundException。

備註

打開原始檔案描述符以存取 URI 下的資料。 這類似 #openAssetFileDescriptor(Uri, String),但使用底層ContentProvider#openFile的 ContentProvider.openFile()} 方法,所以 em<not>/em< 是否>能與回傳檔案子區段的提供者合作? 如果可能,你應該使用 #openAssetFileDescriptor(Uri, String)。 如果提供者回傳檔案的子區段,您將收到 FileNotFoundException 例外。

<h5>接受以下 URI 方案:</h5><ul><li>內容(#SCHEME_CONTENT)</li><li 檔案>(#SCHEME_FILE)</li></ul>

更多關於這些計畫的資訊請參見 #openAssetFileDescriptor(Uri, String) 。

若以專屬的「r」或「w」模式開啟,回傳的 ParcelFileDescriptor 可能是管道或套接字對,以啟用資料串流。 以「rw」模式開啟表示磁碟上有支援尋道的檔案。 如果可能,務必使用排他模式,以賦予底層 ContentProvider 最大的彈性。

如果你正在撰寫檔案,需要向提供者傳達錯誤,請使用 ParcelFileDescriptor#closeWithError(String)。

Java 文件 android.content.ContentResolver.openFileDescriptor(android.net.Uri, java.lang.String)。

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

另請參閱

  • <xref:Android.Content.ContentResolver.OpenAssetFileDescriptor(Android.Net.Uri%2c+System.String)>

適用於

OpenFileDescriptor(Uri, String, CancellationSignal)

打開原始檔案描述符以存取 URI 下的資料。

[Android.Runtime.Register("openFileDescriptor", "(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;", "")]
public Android.OS.ParcelFileDescriptor? OpenFileDescriptor(Android.Net.Uri uri, string mode, Android.OS.CancellationSignal? cancellationSignal);
[<Android.Runtime.Register("openFileDescriptor", "(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;", "")>]
member this.OpenFileDescriptor : Android.Net.Uri * string * Android.OS.CancellationSignal -> Android.OS.ParcelFileDescriptor

參數

uri
Uri

想要開啟的 URI。

mode
String

檔案模式的字串表示法。 可以是「r」、「w」、「wt」、「wa」、「rw」或「rwt」。 請注意,這些實作的具體實作可能因提供者而異——例如,「w」可能會截斷也可能不會截斷。

cancellationSignal
CancellationSignal

取消正在進行的操作的訊號,若無則為空。 如果操作被取消,則 OperationCanceledException 會被拋棄。

傳回

會回傳一個新的 ParcelFileDescriptor,指向該檔案,或 null 是如果供應商最近當機。 這個描述符屬於你,完成後你有責任關閉它。

屬性

例外狀況

若 URI 下無檔案或模式無效,則拋出 FileNotFoundException。

備註

打開原始檔案描述符以存取 URI 下的資料。 這類似 #openAssetFileDescriptor(Uri, String),但使用底層ContentProvider#openFile的 ContentProvider.openFile()} 方法,所以 em<not>/em< 是否>能與回傳檔案子區段的提供者合作? 如果可能,你應該使用 #openAssetFileDescriptor(Uri, String)。 如果提供者回傳檔案的子區段,您將收到 FileNotFoundException 例外。

<h5>接受以下 URI 方案:</h5><ul><li>內容(#SCHEME_CONTENT)</li><li 檔案>(#SCHEME_FILE)</li></ul>

更多關於這些計畫的資訊請參見 #openAssetFileDescriptor(Uri, String) 。

若以專屬的「r」或「w」模式開啟,回傳的 ParcelFileDescriptor 可能是管道或套接字對,以啟用資料串流。 以「rw」模式開啟表示磁碟上有支援尋道的檔案。 如果可能,務必使用排他模式,以賦予底層 ContentProvider 最大的彈性。

如果你正在撰寫檔案,需要向提供者傳達錯誤,請使用 ParcelFileDescriptor#closeWithError(String)。

Java 文件 android.content.ContentResolver.openFileDescriptor(android.net.Uri, java.lang.String, android.os.CancellationSignal)。

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

另請參閱

  • <xref:Android.Content.ContentResolver.OpenAssetFileDescriptor(Android.Net.Uri%2c+System.String)>

適用於