安装应用程序后,未创建内部存储(Android>数据)包文件夹

SY *_* MY 6 android file android-internal-storage

当我全新安装应用程序时,我注意到大多数应用程序都会在“内部存储”>“Android”>“数据”>“com.example.package”文件夹中创建一个文件夹。例如,它的 Facebook 应用程序将类似于 com.facebook.xxxxx。

\n\n

然而,我最近参与的一个项目,我注意到路径“内部存储”>“Android”>“数据”>(没有packege文件夹)中没有这样的应用程序文件夹。

\n\n

在什么情况下它不会在上述路径中创建应用程序文件夹?因为我调试的大多数应用程序都是通过 android studio 运行或通过 apk 文件安装...默认情况下,上述位置始终有一个应用程序文件夹。

\n\n

因为我想将以下文件写入 getFilesDir(),

\n\n
File file = new File(activity.getFilesDir(),imageFileName);\n
Run Code Online (Sandbox Code Playgroud)\n\n

通过使用 getFilesDir(),写入的文件将进入 Android > Data > Package 文件夹 > Files 文件夹,大多数已安装的应用程序在 Android > Data > (此处)中都有一个包文件夹路径。今天我意识到我现在正在做的一个项目,它没有创建这样的包文件夹。那么,当我使用 getFilesDir() 时,这些文件仍将在上述路径中存储和创建,但它是不可见的?或者我使用 getFilesDir() 创建的那些文件将不会被创建?因为正如我提到的,这个应用程序不会创建包文件夹。我必须使用 makedir 吗?如果是的话,会进行什么检查?if(\xef\xbc\x81activity.getFilesDir().exist())

\n\n
File file = new File(activity.getFilesDir(),imageFileName);\n\n//getFilesDir() normally is package folder Android > Data > (package folder*) > Files\n
Run Code Online (Sandbox Code Playgroud)\n

SY *_* MY 2

我已经测试过,发现手机是否只有内部存储(不支持 SDCard)或者手机支持外部存储但没有 SDCard 插入。默认情况下,不会创建此路径中的应用程序文件夹(Android > 数据 > [应用程序文件夹]),直到我调用 (getExternalFilesDir(null) , "Example1") 检查其 contains() 和 makedirs() 如果没有存在,最后在路径 Android > App > com.xxxxx.myapp > files > Example1 中创建了 app 文件夹,其中包含文件夹 Example1。

但是,为什么我创建的一些示例应用程序我从不调用 getExternalFilesDir(null) 或任何文件写入存储路径,但默认情况下我可以在 Android > 应用程序 > [此处] 中找到我的示例应用程序路径。

默认情况下不会创建某些应用程序文件夹,但直到 getExternalFilesDir(null) 检查存在并 mkdirs 后,它才会存在并创建。默认安装应用程序时会创建一些应用程序文件夹。Android 如何确定 Android > App > App 文件夹应该被创建并可见还是创建并使其不可见?

这让我很困惑。有些应用程序会创建应用程序文件夹,有些应用程序安装时默认不会创建它。我们假设两个应用程序都不会调用任何文件路径创建方法。只是我使用最新的 Android Studio 运行的一个非常示例应用程序来测试某些内容,它创建了包文件夹。大项目应用程序正在使用旧的 gradle 设置,大约 5 年前,应用程序默认不会创建包文件夹,直到我调用 File(getExternalFilesDir(null), Example1) 检查它是否存在,然后 mkDirs() ,包文件夹已创建并可见。