Most visited

Recently visited

DocumentFile

public abstract class DocumentFile
extends Object

java.lang.Object
   ↳ android.support.v4.provider.DocumentFile


DocumentsProvider或磁盘上的原始文件支持的文档的表示。 这是一个实用程序类,用于模拟传统的File界面。 它提供了一个文档树的简化视图,但它有大量的开销。 为获得最佳性能和更丰富的功能集,请直接使用DocumentsContract方法和常量。

文档和传统文件有几点区别:

在使用这个类之前,首先考虑你是否真的需要访问整个文档的子树。 最小权限原则规定您只应请求访问您真正需要的文档。 如果您只需要用户选择一个文件,请使用ACTION_OPEN_DOCUMENTACTION_GET_CONTENT 如果您想让用户选择多个文件,请添加EXTRA_ALLOW_MULTIPLE 如果您只需要用户保存单个文件,请使用ACTION_CREATE_DOCUMENT 如果您使用这些API,则可以将生成的getData()传递到fromSingleUri(Context, Uri)以处理该文档。

如果您确实需要完全访问整个文档子树,请启动ACTION_OPEN_DOCUMENT_TREE以让用户选择一个目录。 然后将生成的getData()传递到fromTreeUri(Context, Uri)以开始使用用户选择的树。

在浏览DocumentFile实例的树时,您始终可以使用 getUri()获取表示该对象的基础文档的Uri,以便与 openInputStream(Uri)一起使用等等。

为了简化运行 KITKAT或更早版本的设备上的代码,可以使用模拟 fromFile(File)的行为的 DocumentsProvider

也可以看看:

Summary

Public methods

abstract boolean canRead()

指示是否允许从该文件读取当前上下文。

abstract boolean canWrite()

指示是否允许当前上下文写入此文件。

abstract DocumentFile createDirectory(String displayName)

创建一个新目录作为此目录的直接子目录。

abstract DocumentFile createFile(String mimeType, String displayName)

创建一个新文档作为此目录的直接子节点。

abstract boolean delete()

删除此文件。

abstract boolean exists()

返回一个指示是否可以找到该文件的布尔值。

DocumentFile findFile(String displayName)

通过 listFiles()搜索匹配给定显示名称的第一个文档。

static DocumentFile fromFile(File file)

创建一个 DocumentFile表示以给定的 File根的文件系统树。

static DocumentFile fromSingleUri(Context context, Uri singleUri)

创建 DocumentFile代表在给定的单一文件 Uri

static DocumentFile fromTreeUri(Context context, Uri treeUri)

创建一个 DocumentFile表示以给定的 Uri根的文档树。

abstract String getName()

返回此文档的显示名称。

DocumentFile getParentFile()

返回此文档的父文件。

abstract String getType()

返回此文档的MIME类型。

abstract Uri getUri()

返回此文件所代表的底层文档的Uri。

abstract boolean isDirectory()

指示此文件是否代表 目录

static boolean isDocumentUri(Context context, Uri uri)

测试Uri是否由 DocumentsProvider支持。

abstract boolean isFile()

指示该文件是否代表 文件

abstract long lastModified()

返回上次修改此文件的时间,以毫秒为单位,自1970年1月1日起,午夜。

abstract long length()

以字节为单位返回此文件的长度。

abstract DocumentFile[] listFiles()

返回此文件所表示的目录中包含的文件数组。

abstract boolean renameTo(String displayName)

将该文件重命名为 displayName

Inherited methods

From class java.lang.Object

Public methods

canRead

boolean canRead ()

指示是否允许从该文件读取当前上下文。

Returns
boolean true if this file can be read, false otherwise.

canWrite

boolean canWrite ()

指示是否允许当前上下文写入此文件。

Returns
boolean true if this file can be written, false otherwise.

也可以看看:

createDirectory

DocumentFile createDirectory (String displayName)

创建一个新目录作为此目录的直接子目录。

Parameters
displayName String: name of new directory
Returns
DocumentFile file representing newly created directory, or null if failed
Throws
UnsupportedOperationException when working with a single document created from fromSingleUri(Context, Uri).

也可以看看:

createFile

DocumentFile createFile (String mimeType, 
                String displayName)

创建一个新文档作为此目录的直接子节点。

Parameters
mimeType String: MIME type of new document, such as image/png or audio/flac
displayName String: name of new document, without any file extension appended; the underlying provider may choose to append the extension
Returns
DocumentFile file representing newly created document, or null if failed
Throws
UnsupportedOperationException when working with a single document created from fromSingleUri(Context, Uri).

也可以看看:

delete

boolean delete ()

删除此文件。

注意,此方法抛出IOException失败。 呼叫者必须检查返回值。

Returns
boolean true if this file was deleted, false otherwise.

也可以看看:

exists

boolean exists ()

返回一个指示是否可以找到该文件的布尔值。

Returns
boolean true if this file exists, false otherwise.

findFile

DocumentFile findFile (String displayName)

通过listFiles()搜索匹配给定显示名称的第一个文档。 没有找到匹配的文档时返回null

Parameters
displayName String
Returns
DocumentFile
Throws
UnsupportedOperationException when working with a single document created from fromSingleUri(Context, Uri).

fromFile

DocumentFile fromFile (File file)

创建一个DocumentFile表示以给定的File根的文件系统树。 除了你的应用程序已有的基础文件之外,这不会给你任何额外的访问权限。

getUri()将返回 file:// Uris查看通过此树探索的文件。

Parameters
file File
Returns
DocumentFile

fromSingleUri

DocumentFile fromSingleUri (Context context, 
                Uri singleUri)

创建DocumentFile代表在给定的单一文件Uri 这只适用于运行KITKAT或更高版本的设备,并且在早期平台版本上null时将返回null

Parameters
context Context
singleUri Uri: the getData() from a successful ACTION_OPEN_DOCUMENT or ACTION_CREATE_DOCUMENT request.
Returns
DocumentFile

fromTreeUri

DocumentFile fromTreeUri (Context context, 
                Uri treeUri)

创建一个DocumentFile表示以给定的Uri根的文档树。 这仅适用于运行LOLLIPOP或更高版本的设备,并且在早期平台版本上null时将返回null

Parameters
context Context
treeUri Uri: the getData() from a successful ACTION_OPEN_DOCUMENT_TREE request.
Returns
DocumentFile

getName

String getName ()

返回此文档的显示名称。

Returns
String

也可以看看:

getParentFile

DocumentFile getParentFile ()

返回此文档的父文件。 只在用户选择的树内定义; 你永远不能在树顶上逃跑。

底层的 DocumentsProvider只定义了从父到子的正向映射,所以这里提供的子对父对象的反向映射纯粹是一种方便的方法,如果底层树结构发生变化,它可能不正确。

Returns
DocumentFile

getType

String getType ()

返回此文档的MIME类型。

Returns
String

也可以看看:

getUri

Uri getUri ()

返回此文件所代表的底层文档的Uri。 这可以与其他平台API一起使用来操纵或共享底层内容。 您可以使用isDocumentUri(Context, Uri)来测试返回的Uri是否由DocumentsProvider支持。

Returns
Uri

也可以看看:

isDirectory

boolean isDirectory ()

指示此文件是否代表 目录

Returns
boolean true if this file is a directory, false otherwise.

也可以看看:

isDocumentUri

boolean isDocumentUri (Context context, 
                Uri uri)

测试Uri是否由 DocumentsProvider支持。

Parameters
context Context
uri Uri
Returns
boolean

isFile

boolean isFile ()

指示该文件是否代表 文件

Returns
boolean true if this file is a file, false otherwise.

也可以看看:

lastModified

long lastModified ()

返回上次修改此文件的时间,以毫秒为单位,自1970年1月1日起,午夜。 如果文件不存在,或者修改时间未知,则返回0。

Returns
long the time when this file was last modified.

也可以看看:

length

long length ()

以字节为单位返回此文件的长度。 如果文件不存在,或者长度未知,则返回0。 没有定义目录的结果。

Returns
long the number of bytes in this file.

也可以看看:

listFiles

DocumentFile[] listFiles ()

返回此文件所表示的目录中包含的文件数组。

Returns
DocumentFile[] an array of files or null.
Throws
UnsupportedOperationException when working with a single document created from fromSingleUri(Context, Uri).

也可以看看:

renameTo

boolean renameTo (String displayName)

将该文件重命名为 displayName

注意,此方法抛出IOException失败。 呼叫者必须检查返回值。

某些提供程序可能需要创建一个新文档以反映重命名,可能使用不同的MIME类型,因此可能会更改 getUri()getType()以反映重命名。

重命名目录时,先前通过 listFiles()枚举的子 listFiles()可能不再有效。

Parameters
displayName String: the new display name.
Returns
boolean true on success.
Throws
UnsupportedOperationException when working with a single document created from fromSingleUri(Context, Uri).

也可以看看:

Hooray!