ContentResolver.OpenFileDescriptor 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | 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)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
另請參閱
- <xref:Android.Content.ContentResolver.OpenAssetFileDescriptor(Android.Net.Uri%2c+System.String)>