我有一个Android内部存储问题。我在包根文件夹中创建了一个文件夹,调用getDir()
和MODE_WORLD_WRITEABLE
,因为我想让相机应用程序在此文件夹中写入捕获的图像。无论如何,我可以看到捕获的图像在DDMS
的文件夹内。 问题是我无法读取该文件。Android内部存储读取文件
我试图读取文件使用此代码:
File file = context.getDir("images", Context.MODE_WORLD_READABLE);
File image = new File(file, "image.jpeg");
if (image.canRead())
Log.w("read", "can read");
else
Log.w("read", "can't read");
而在logcat中,只有第二条消息(无法读取)。
我也尝试使用文件名创建FileInputStream
,但我收到FileNotFoundException
。
有人能告诉我我在做什么错吗?
在此先感谢
编辑:
读取文件是正确的,但唯一的问题是,当凸轮的应用程序是保存图像到指定的位置,允许通过凸轮的应用程序被设置到图像文件是-rwxrwx---.
改变后使用
adb (chmod 777 image.jpeg)
我能够读取图像。有趣的是,凸轮应用程序正在使用----rwxr-x
将图像文件写入sdcard
。
有没有办法在运行时更改文件权限?
你是否确定该文件在软件包根目录中,而不是在'files'子目录中?将文件放入程序包根目录本身并不常见。 – 2012-03-22 23:23:59
在包根目录下是文件夹_images_,并在该文件夹内有文件。如果设备没有外部存储,我正在使用内部存储。我不知道如何使用MODE_WORLD_WRITEABLE在_files_中创建文件夹,以便cam应用程序可以写入捕获的图像。 – Emran 2012-03-22 23:30:25