检查文件是否存在? file.exists()总是返回false

时间:2015-07-29 12:57:54

标签: java android file-exists

我在检查文件是否存在时遇到问题这是我的简单代码:

File myfile = new File ("SecretFile");

            if(myfile.exists(){

                TextView mytxt = (TextView)findViewById(R.id.textView);
                mytxt.setText("Loaded successfully");

            }
            else{
                try {
                    myfile.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }

                TextView mytxt = (TextView)findViewById(R.id.textView);
                mytxt.setText("Not loaded,reboot the application");
            }

我正在做一个简单的游戏,我需要检查第一个应用程序运行,因为当应用程序运行时,它从文件加载所有变量,但在第一次运行时,没有文件,所以应用程序崩溃。 我还有另一个问题文件“SecretFile”在哪里? 如何在Android / data / com.mypackage.myapp / SecretFile中创建文件?

2 个答案:

答案 0 :(得分:9)

File myfile = new File ("SecretFile");

该声明在Android上没有任何意义。

  

我还有另一个问题,文件“SecretFile”在哪里?

无处。我们欢迎您将SecretFile存储在internal storageexternal storage,但您必须通过创建指向这些位置的File对象来实现此目的(例如File myfile = new File(getFilesDir(), "SecretFile"); )。

  

如何在Android / data / com.mypackage.myapp / SecretFile中创建文件?

你做不到。最接近的匹配是use getExternalFilesDir(null),我在上面的代码段中有getFilesDir(),这会将您的文件放在Android/data/com.mypackage.myapp/files/SecretFile的外部存储空间中。正如Der Golem所指出的那样,您需要{API}级别4到18的WRITE_EXTERNAL_STORAGE权限。

答案 1 :(得分:1)

在android中创建文件时,需要添加创建文件的路径。如果您无法满足其要求,则不会创建文件。

这就是为什么你的返回数据总是假的。

This link可以帮到你。