我知道ExternalFiles是在API8和更高版本上使用的,而getExternalStorageDirectory是在7和更低版本上使用的。然而,我对它的使用有点困惑。例如,我想检查一个存在的文件夹,在此之前,您将使用以下内容:
File ChildFolder = new File(Environment.getExternalStorageDirectory() + "/ParentFolder/Child");
然而,我看到的每个示例都说明要使用getExternalFilesDir (null)、File.ext。因为我在API 8之上,所以我想使用这个方法,但是我怎么才能检查文件夹呢?我将在另一时刻检查文件是否存在,但现在只想查看文件夹是否存在??
发布于 2012-04-12 20:57:57
getExternalFilesDir()
它返回您的SD卡上Android/data/data/your_package/中文件文件夹的路径。它用于存储应用程序所需的任何文件(例如,从web下载的图像或缓存文件)。卸载应用程序后,此文件夹中存储的所有数据也将消失。
getExternalStorageDirectory()
它会返回SD卡的根路径(例如mnt/sdcard/)。如果你在此路径上保存数据并卸载应用程序,则该数据不会丢失。
发布于 2015-04-02 11:18:50
首先,我们需要了解内部存储、外部存储(也称为主外部存储)和辅助外部存储-之间的区别
内部存储:是用户无法访问的存储,除非通过已安装的应用程序(或通过引导其设备)。示例: data/data/app_packageName
USB主外部存储:内置共享存储,“用户可以通过插入USB线并将其作为驱动器安装在主机上访问”。例如:当我们说Nexus 5 32 GB时。
辅助外部存储:可移动存储。示例:SD卡。
getExternalFilesDir (String type)
它返回主外部存储上Android/data/data/your_package/内的文件文件夹的路径。这是内置存储。
Environment.getExternalStorageDirectory()
它将返回辅助外部存储目录的路径
发布于 2015-03-03 18:08:47
!重要的更新!对于遇到这个问题的人,请使用。
因为这是一个有点老的问题,所以只想提供一些额外的信息。由于KitKat即使是具有WRITE_EXTERNAL_STORAGE权限的应用程序也只允许写入外部存储上的,也称为 getExternalFilesDir()
如果您将尝试写入getExternalStorageDirectory() + "/somefolder/anotherfolder/"
,您将在大多数设备上获得SecurityException
https://stackoverflow.com/questions/10123812
复制相似问题