Java Environment.getExternalStorageDirectory()不工作
我正在尝试在手机的外部存储器(SD卡)中创建一个文件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
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操作定义的“外部存储”。