ContentResolver.OpenFileDescriptor 方法

定义

重载

名称 说明
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> 使用返回文件的子部分的提供程序。 如果可能,则应使用 #openAssetFileDescriptor(Uri, String)。 如果提供程序返回文件的子部分,则会收到 FileNotFoundException 异常。

<h5>接受以下 URI 方案:</h5><ul><li>content (#SCHEME_CONTENT)/li li>file (#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)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

另请参阅

  • <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

取消正在进行的操作的信号;如果没有,则为 null。 如果取消该操作, OperationCanceledException 则会引发。

返回

返回指向文件的新 ParcelFileDescriptor,或者 null 提供程序最近崩溃。 你拥有此描述符,并负责在完成后将其关闭。

属性

例外

如果 URI 下不存在文件或模式无效,则引发 FileNotFoundException。

注解

打开原始文件描述符以访问 URI 下的数据。 这类似于#openAssetFileDescriptor(Uri, String),但使用基础 ContentProvider#openFile ContentProvider.openFile()} 方法,因此不会<<>/em> 使用返回文件的子部分的提供程序。 如果可能,则应使用 #openAssetFileDescriptor(Uri, String)。 如果提供程序返回文件的子部分,则会收到 FileNotFoundException 异常。

<h5>接受以下 URI 方案:</h5><ul><li>content (#SCHEME_CONTENT)/li li>file (#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)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

另请参阅

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

适用于