在 Nexus S 的 SD 卡上保存问题

Posted

技术标签:

【中文标题】在 Nexus S 的 SD 卡上保存问题【英文标题】:Problem saving on sdcard of Nexus S 【发布时间】:2011-08-29 12:37:13 【问题描述】:

我无法在 Nexus S 上保存文本文件。状态已挂载,路径正常 (/sdcard/filename),我的清单文件中有用于外部存储的权限。

程序在这一行给出IOException

File file = new File(path, fileName + ".txt");

我不知道如何检测问题,尤其是如果它在 Galaxy Mini 上运行良好。一段时间以来,我一直在努力在三星 Galaxy 上保存一个 txt 文件,但通过从定义 min sdk 版本的清单文件中删除一行来使其工作。它实际上不接受任何 min sdk 版本,所以我暂时将其完全删除...

谁能帮忙?

【问题讨论】:

我认为如果您在创建“路径”和“文件名”的位置发布代码会有所帮助。此外,如果您粘贴异常,如果有的话。 【参考方案1】:
String path= Environment.getExternalStorageDirectory().toString()+"/";
File file = new File(path+fileName + ".txt");

试试看

【讨论】:

看来问题出在 API 版本上:getExternalStorageDirectory() 适用于 (对不起,不习惯这个系统,cmets 过期等等)需要 getExternalFilesDir() 的 Nexus S。我将目标 android 版本更改为 2.2 并且一切正常,但我仍然不清楚如何使其也能在 2.1 上运行。【参考方案2】:

如docs 中所述,您应首先检查是否已挂载外部媒体:

if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) 

然后通过Environment.getExternalStorageDirectory()使用它。

如果您打算保存公开访问的文件(图片、视频、音乐等),请使用 Environment. getExternalStoragePublicDirectory(..) 和适当的参数。

【讨论】:

以上是关于在 Nexus S 的 SD 卡上保存问题的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Android API 24+ 在 SD 卡上写入文件

在 Android sdk 2.2 中在 SD 卡上安装应用程序

在 SD 卡上存储 Android 应用程序数据

ARCGIS保存服务定义文件(.sd)后到服务器上发布服务

如何在 Android 中获取 SD 卡上文件夹的大小?

删除 SD 卡上的文件夹