如何在 Android 设备中找到所有只读存储?

Posted

技术标签:

【中文标题】如何在 Android 设备中找到所有只读存储?【英文标题】:How to find all read Only Storage in Android devices? 【发布时间】:2015-07-07 07:29:49 【问题描述】:

我为我糟糕的英语语法道歉。

我想知道android设备是否在同一设备中同时具有只读和读/写存储?

如果是,如何获取只读存储目录。

String path = Environment.getExternalStorageDirectory().toString();

使用此代码可以检索主存储设备的路径。

其实我想做的,获取内部和外部存储的所有目录,并检查它们是只准备好还是分别读/写..

是否可以找到所有目录并检查是否可写?

【问题讨论】:

【参考方案1】:

如果 SD 卡是可读的,您可以通过简单的方式检索所有文件和文件夹:

String sdPath = Environment.getExternalStorageDirectory().getAbsolutePath();

然后轻松获取文件列表:

File sdFile = new File(sdPath);
File fileList[] = sdFile.listFiles();

获取列表后,您可以检查文件是否可读、可写或两者兼而有之。此外,如果它是一个文件或目录,如果它是一个目录,请继续搜索该目录以查找可读/可写文件。小例子:

for(int i=0;i<fileList.length;i++)

   File fileListFile = fileList[i];
   boolean isReadable = fileListFile.canRead();
   boolean isWritable = fileListFile.canWrite();
   boolean isDir = fileListFile.isDirectory();


这只是一个可以引导您走向正确方向的示例。如果您想列出可读/可写文件或目录,还有更多工作要做。

【讨论】:

感谢您的帮助。但它只返回 sdcard0 中的文件 .. 我怎样才能获得子文件夹中的所有文件 如果我理解你的正确方式,使用 getFilesDir() 而不是 getExternalStorageDirectory()..

以上是关于如何在 Android 设备中找到所有只读存储?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 .apk 文件详细信息(如:名称、id、vercode ..etc)存储在 android 设备的外部存储中

获取连接到 Android 设备的所有存储设备的路径列表

如何从浏览器获取本地存储在 Android 中的文件列表?

如何找到并清除所有Android设备上的SQLite数据库文件呢?

你如何删除存储在网络上的 Sembast db 中的所有数据?扑

如何将数据存储在即使从其他设备登录也可用的应用程序中?