gpt4 book ai didi

java - Environment.getExternalStorageDirectory() 不起作用

转载 作者:行者123 更新时间:2023-12-01 13:25:42 24 4
gpt4 key购买 nike

我正在尝试在手机的外部存储(SD 卡)中创建文件。

文件 F = new File(Environment.getExternalStorageDirectory() + File.separator + "MyBrand"+ File.separator + "MyApp"+ File.separator + "MyFile.srl");

但这是在内部存储区域中创建它。我检查了 Windows 资源管理器。调试时,F 的路径是“/mtn/sdcard/MyBrand/MyApp/MyFile.srl”,这是错误的,因为在 Windows 资源管理器中 sdcard 的名称实际上是“SD Card”(带有空间)。我还在 getExternalStorageDirectory()` 末尾尝试了 .getAbsolutePath 但它做了完全相同的事情。

我创建此文件的代码:

if (F.exists() == false)
{
try
{
F.getParentFile().getParentFile().mkdir();
F.getParentFile().mkdir();
F.createNewFile();
}
catch (IOException e)
{
e.printStackTrace();
}

scr_save();
}
else
scr_load();

它执行 mkdirs() 和 createNewFile() 效果很好,但 scr_save 和 scr_load 总是抛出异常,要么是 FileNotFound,要么是 IOException。

编辑:我还在未插入计算机时对其进行了测试,只是为了确保不会受到干扰。为了安全起见,我总是在拔掉插头之前删除路径和文件。它似乎创建了目录和文件,但后来没有正确读取它(它可能没有正确序列化吗?我使用这个文件来存储序列化对象)。

编辑:原来有一个错误。我将路径 + 文件名作为单个参数输入到 F 中。现在我将路径和文件名作为 2 个单独的字符串传递。但是,我仍然遇到同样的问题:(

我的 list 中有正确的权限 (.WRITE_EXTERNAL_STORAGE)

我使用 Windows 7 64 位,以及 Eclipse 的 64 位版本。我的手机是 LG-MS770。

无论如何,请帮忙。不知道为什么 getExternalSorage 不起作用。

最佳答案

I'm trying to create a file in the external storage (SD Card) of my phone

在 2011 年初以来生产的大多数设备上,Android SDK 所说的“外部存储”并不是 SD 卡。

No clue why the getExternalSorage is not working.

它工作得很好并且 as documented 。它根本不符合您的期望。

直到 Android 4.4,还没有记录和支持的方法来访问任何类型的可移动存储。在 Android 4.4 上,您现在拥有 getExternalFilesDirs()getExternalCacheDirs()(注意复数),它们可以让您访问可移动存储上的特定目录(如果存在此类存储)。

关于java - Environment.getExternalStorageDirectory() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21817342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com