[再次编辑,因为我想我可能已经开始理解。]
我的老问题在下面。
但是,我认为我的问题已经归结为这个问题。
除非您经过复杂的data/data
,否则rooting
中的内部存储不能真正在手机上访问吗?
是Android/data
中的外部存储空间,它将连接在连接的SD卡上,如果没有连接SD卡,则将存储在主内存中。公众可以通过File Manager
在手机上看到此信息。
---旧问题---
我保存了两次文件。
当我保存在内部存储中时,我也同时保存了备份。
但是,保存到内部存储的备份未显示在文件管理器的文件目录中。 (但是当我相信自己要保存 EXTERNALLY 时,它会显示在内部存储中。)
我相信内部存储的位置如下所示(但是我开始怀疑它-我是android的新手-我正在使用 Genymotion 模拟器):
File Manager|Android|com.mysite.jon.myappname|files
内部存储空间在哪里?
这是我的代码:
public void save(boolean saveLocal, boolean saveExternal, String fileContent) {
boolean ret = true;
// The false indicates I am saving internally (ie isExternal = false)
if (ret && saveLocal && !saveLocalExternal(false, fileContent)) ret = false;
// I am shutting off external save at thee moment to make the problem clear
//if (ret && saveExternal && isExternalStorageWritable() && !saveLocalExternal(true, fileContent)) ret = false;
return ret;
}
public boolean saveLocalExternal(boolean isExternal, String fileContent) {
boolean ret = true;
String filename1 = "a.txt", filename2 = "b.txt";
File path = isExternal ? mContext.getExternalFilesDir(null) : mContext.getFilesDir();
File file = new File(path, this.filename);
FileOutputStream outputStream, outputStream2;
try {
outputStream = new FileOutputStream(new File(path, filename1));
outputStream.write(fileContent.getBytes());
outputStream.close();
if(!isExternal) {
outputStream2 = new FileOutputStream(new File(path, filename2));
outputStream2.write(fileContent.getBytes());
outputStream2.close();
}
} catch (Exception e) {
//e.printStackTrace();
ret = false;
}
return ret;
}
b.txt
在哪里?当然应该在内部存储中吗?