将文件保存在闪存中

时间:2012-09-12 11:40:27

标签: android

如何获取我的应用程序可以保存大型JPG文件的文件夹的路径? getExternalStorageDirectory()仅在SD卡存在时才能正常工作,但是当SD被移除或者硬件没有SD卡插槽时会发生什么。 感谢

3 个答案:

答案 0 :(得分:1)

您可以使用Context的getFilesDir()方法。从上下文中,您还可以使用方法来获取缓存目录,外部缓存目录和外部文件目录。 Activity也是一个上下文,因此您可以从一个内部使用这些方法。

getFilesDir()方法为您提供了一个文件夹,您的文件只能从您的应用程序访问,并且始终可用。但是,您应该尽可能使用缓存目录。这样就可以避免系统空间不足。

编辑:

我的回答:设备几乎总是有SD卡或内置外置存储设备。当它内置时,它仍然被称为外部存储。要检查外部存储器是可移动的(SD卡)还是内置存储器,您可以在环境中使用isExternalStorageRemovable()。 基本上,您不应将大文件放在内部存储器上。 内部存储器中没有公共文件夹。如果设备没有外部存储器,则根本无法执行某些操作。就那么简单。因此,当没有外部存储器时,您有一个选项是通知用户并要求他们插入卡。您不必处理这种情况,让用户处理它。

您要求的答案:尝试使用Context对象的getDir(String name, int mode)和/或openFileOutput(String name, int mode),对于模式,请使用MODE_WORLD_READABLE或MODE_WORLD_WRITEABLE。另请查看Using the Internal Storage

为了每个人的利益,您正面临着平台的预期限制。

答案 1 :(得分:0)

您可以要求存在外部目录,也可以存储到内部目录。如果您选择同时允许两者,我建议您在内部空间存储一个标记,表示您已在外部存储了某些内容,因此如果不存在外部存储,您可以采取适当的措施。

答案 2 :(得分:0)

由于您正在保存大型JPG文件,因此最好将其保存在外部存储中,因为手机内部存储器非常小,而这一切都会影响手机的性能。