Java 中 File 和 DocumentFile 的区别

Difference between File and DocumentFile in Java

java.util.File 和 Java Android 中的 android.support.v4.provider.DocumentFile 到底有什么区别?

简而言之:

File 是 "normal" Java 文件,即使他从未接触过 Android 通常也会知道 - 即访问底层的抽象OS 的 files/directories.

DocumentFile 被引入以在 Android 的存储访问框架 (SAF) 中进一步抽象它 - 它由 "normal" 文件或由 "normal" 文件支持另一个名为 DocumentProvider https://developer.android.com/guide/topics/providers/document-provider.html 的抽象可以用于以更通用的方式访问这两种类型的文件。它是 Google 对 'hide' 底层 OS file/directory 结构的持续努力的一部分。

一种方法是同时使用 File(当访问 disk/card 文件时)或 DocumentFile(当访问从 ContentProvider 支持的文件时),但更 "modern" 的方法是始终使用 DocumentFile,它可以使用 fromFile(File)

表示普通文件