Sib*_*ing 11 android android-sdcard
我试着把东西写进手机内存.
起初,我将路径硬编码为:
myFile = new File("/sdcard/" + txtName.getText() + ".txt");
Run Code Online (Sandbox Code Playgroud)
这完全没问题.
然后,eclipse给了我一个警告,说我不应该像这样硬编码路径,我应该做以下事情:
myFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/"+ txtName.getText() + ".txt");
Run Code Online (Sandbox Code Playgroud)
然后我按照修正建议,避免警告.
但是,我在writer类上遇到了运行时异常.
然后,我打印出来Environment.getExternalStorageDirectory().getAbsolutePath()进行调试.结果是
/存储/ sdcard0
.但实际上之前工作得很好的硬编码的那个
/SD卡
.
为什么会这样?
如果我想避免警告,我怎么能以更"正式和正确"的方式获取路径目录而不是硬编码路径?
PS:我的手机是HTC One X,没有外置SD卡插槽.我想32GB存储装有一个内置的SD卡,因此,本质应该是相同的.
Com*_*are 15
为什么会这样?
由于多年来外部存储的路径发生了变化,因此您首先应该从未对路径进行硬编码.
如何以更"正式和正确"的方式获取路径目录而不是硬编码路径?
使用Environment.getExternalStorageDirectory().
在您的测试环境中,/sdcard是/storage/sdcard0设备制造商设置的符号链接或硬链接.但是,并不能保证所有设备都有这样的/sdcard符号链接.
我想32GB存储空间配有内置SD卡
外部存储是板载32GB闪存的一部分.
| 归档时间: |
|
| 查看次数: |
53515 次 |
| 最近记录: |