Android应用程序说该文件不存在,但它确实存在。我需要安装它

时间:2016-01-28 09:42:44

标签: java android android-studio

这是我的代码:

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'并显示文件的路径'不存在'。

3 个答案:

答案 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");