Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Environment.getExternalStorageDirectory()不工作_Java_Android - Fatal编程技术网

Java Environment.getExternalStorageDirectory()不工作

Java Environment.getExternalStorageDirectory()不工作,java,android,Java,Android,我正在尝试在手机的外部存储器(SD卡)中创建一个文件 File F=新文件(Environment.getExternalStorageDirectory()+File.separator+“MyBrand”+File.separator+“MyApp”+File.separator+“MyFile.srl”) 但这是在内部存储区域创建的。我签入了Windows资源管理器。调试时,F的路径是“/mtn/sdcard/MyBrand/MyApp/MyFile.srl”,这是错误的,因为在Windo

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

File F=新文件(Environment.getExternalStorageDirectory()+File.separator+“MyBrand”+File.separator+“MyApp”+File.separator+“MyFile.srl”)

但这是在内部存储区域创建的。我签入了Windows资源管理器。调试时,
F
的路径是“/mtn/sdcard/MyBrand/MyApp/MyFile.srl”,这是错误的,因为在Windows资源管理器中,SD卡的名称实际上是“SD卡”(带空格)。我还在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\u save和scr\u load总是抛出异常,FileNotFound或IOException

编辑: 我也一直在测试它,当它没有插入我的电脑,只是为了确保没有干扰。为了安全起见,我总是在拔出之前删除路径和文件。它似乎创建了dir和文件,但是没有正确地读取它(它可能没有被正确序列化吗?我使用这个文件来存储序列化的对象)

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

我在清单(.WRITE\u EXTERNAL\u STORAGE)中拥有正确的权限

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

无论如何,请帮助。不知道getExternalSorage为什么不工作

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

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

不知道getExternalSorage为什么不工作

它工作得很好,而且没有达到你的期望


在Android 4.4之前,没有文档记录和支持的访问任何类型可移动存储的方法。在Android 4.4上,您现在有
getExternalFilesDirs()
getExternalCacheDirs()
(注意复数),如果存在可移动存储,您可以访问该存储上的特定目录。

首先,
/mnt/sdcard/MyBrand/MyApp/MyFile.srl
是正确的:
SD卡
可以是Windows资源管理器分配的标签。
不管怎样,看看上面写着:

如果用户已在上装入此目录,则当前可能无法访问此目录 他们的计算机已从设备中删除,或者发生了其他问题。您 可以使用getExternalStorageState()确定其当前状态

很可能,您在安装
SD卡
时进行调试,这是错误的。

然后,如果失败,
mkdir
不会抛出
exception
createNewFile
应该这样做,但当您读到类似“或发生了其他问题”的内容时,你应该为头痛做好准备。

getExternalStorage
非常混乱。它并不代表你插入手机的SD卡,而是当你插入手机时电脑上显示的内容


这是一个存储,你可以通过浏览将一些图像、音乐等放在手机上或从手机中获取它们。

是的,我已经测试了计算机的插入和拔出。我在我的OP.ok thx中添加了一个编辑来清除这些。所以我不想要真正的SD卡,只想要android操作定义的“外部存储”。