2011-01-13 129 views
3

在我的应用我做File newxmlfile = new File(Environment.getExternalStorageDirectory() + "/Message.xml");文件保存到手机,而不是SD卡

保存XML文件到用户的SD卡,但并不是所有的用户都SD卡在自己的手机,因此我的应用程序很可能会崩溃。

如何更改文件创建方法以便将文件保存到手机的存储器而不是SD卡?

另外,如何更改文件的加载? (当前:new InputSource(new FileInputStream(Environment.getExternalStorageDirectory() + "/Message.xml"))

编辑:我不认为你有这个问题的权利。我知道Android Docs的Data-Storage页面,并且已经阅读过它。我只是想知道我应该如何调整它以符合我目前保存和加载文件的方式。

+1

每一个Android兼容设备得到它支持一个共享的“外部存储”你可以用来保存文件。这可以是可移动存储介质(如SD卡)或内部(不可移动)存储器。注意:不要被这里的“外部”一词所迷惑。这个目录可以更好地被认为是媒体/共享存储。它是一个在所有应用程序之间共享的文件系统(不强制执行权限)。传统上这是一个SD卡,但它也可以作为内置存储器实现在与受保护的内部存储器不同的设备中,并且可以安装作为计算机上的文件系统。 – rohitverma 2013-03-06 17:49:06

回答

4

通过改变

Environment.getExternalStorageDirectory() + "/Message.xml" 

Environment.getDataDirectory() + "/data/com.companyname.appname/files/Message.xml" 
3

首先,您应该通过检查getExternalStorageState()来检查外部存储(SD卡)是否可用并准备好写入。 更多这里:http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

然后,如果SD卡不可用,您可以写入内部存储。 更多内容,例如如何写和读:http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

+0

问题是我不希望我的应用程序出现碎片。我想在所有设备上使用相同的1版本。另外,我不想在我的应用程序中进行检查。这很容易。 – Galip 2011-01-13 09:57:59