这是我的代码:
project-root
myFile.exists()为false。我不知道为什么。该文件存在,它位于目录中。
当我解决问题时,我会尝试这个:
String dir = getFilesDir().getAbsolutePath();
File myFile = new File(dir+"/file.apk");
if (myFile.exists())
{
textView.setText("File exists.");
}
else
{
textView.setText("File does not exist.");
}
有人可以帮忙吗?为什么它没有看到文件?
更新:
真的很奇怪。如果我使用代码:
Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
intent.setData(Uri.fromFile(myFile));
intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
,它转到'else'并显示文件的路径'不存在'。
答案 0 :(得分:1)
感谢greenapps:
“请在Astro应用程序中单击向上箭头上的单词Primary以查看真实路径。/ Primary /在Android设备上不存在。它是Astro的发明.Astro显示外部存储器与Primary。并采取一个更好的文件浏览器,如ES文件资源管理器,通知你真正的路径“
我使用Astro发现的直接路径(修改后的字符串目录为'/ sdcard / data / data / ...)。
答案 1 :(得分:0)
尝试使用此代码:
String dir = getFilesDir().getAbsolutePath();
boolean fileExists = (new File(dir + "/file.apk")).isFile();
if (fileExists)
{
// your file exists
}
else
{
// your file does not exist
}
答案 2 :(得分:0)
如果使用2-arg构造函数构造文件,则可以避免添加依赖于系统的路径分隔符。像这样:
File myFile = new File(dir, "file.apk");