【发布时间】:2013-06-20 13:52:52
【问题描述】:
我尝试在手机内存中写入一些东西。
起初,我将路径硬编码为:
myFile = new File("/sdcard/" + txtName.getText() + ".txt");
这完全没问题。
然后,eclipse 给了我一个警告,说我不应该像那样硬编码路径,我应该执行以下操作:
myFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/"+ txtName.getText() + ".txt");
然后我遵循更正建议并避免警告。
但是,我在编写器类上遇到了运行时异常。
然后,我打印出Environment.getExternalStorageDirectory().getAbsolutePath() 用于调试目的。结果是
/storage/sdcard0
。但是以前工作得很好的硬编码实际上是
/sdcard
.
为什么会这样?
如果我希望避免该警告,如何以更“正式和正确”的方式获取路径目录,而不是硬编码路径?
P.S.:我的手机是 HTC One X,没有外置 SD 卡槽。我猜32GB的存储是内置SD卡的,所以本质应该是一样的。
【问题讨论】:
-
检查这可能会有所帮助stackoverflow.com/questions/15744064/…