Android 获取NullPointerException检查文件是否存在

Android 获取NullPointerException检查文件是否存在,android,file,nullpointerexception,Android,File,Nullpointerexception,我正在尝试改进我的“删除”按钮,因此,如果我按下按钮,文件不在那里,它会启动一个Toast,说没有要删除的文件,我尝试了以下方法: mBtnBorrar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(file.exists()){

我正在尝试改进我的“删除”按钮,因此,如果我按下按钮,文件不在那里,它会启动一个Toast,说没有要删除的文件,我尝试了以下方法:

  mBtnBorrar.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {


                 if(file.exists()){
                     file.getAbsoluteFile().delete();
                     Toast.makeText(MainActivity.this, "File deleted..", Toast.LENGTH_SHORT).show();
                 }else
                 {
                     Toast.makeText(MainActivity.this, "There is no file to delete.", Toast.LENGTH_SHORT).show();
                 }


             }
         });
我的文件在此声明:

 File file;

 File path = new File(Environment.getExternalStorageDirectory()
                 .getPath());

         if (!path.exists() && !path.mkdirs()) {
             throw new IOException("No se pudo crear el directorio del archivo.");
         }else{

             try {
                 file = File.createTempFile("audio", ".3gp", path);
             } catch (IOException e) {
             }

         }

现在的问题是,如果我尝试使用if I get a
nullpointerexception
删除该文件,但如果我首先创建该文件,然后成功删除该文件,然后再次按下delete(删除)按钮,则会显示没有文件的异常,但在应用程序启动时,如果我按下按钮而不创建文件,它不会检查文件是否存在以删除。

直到您执行代码
file=file.createTempFile(“音频”,“.3gp”,路径)
,则
文件
将为
。如果在创建文件之前测试delete按钮,则会出现这种情况。简单的空检查是处理此问题的常用方法

编辑:将空检查更改为
onClick()

另一种方法是设置一个标志,指示是否首先创建了文件,然后在
onClick()
中检查该标志


参考页)什么是archivo.getAbsoluteFile().delete()@僵尸对不起,上面写着archivo是文件的地方,我忘了更改它。试着像你在第二部分中那样在
onClick
中签入它code@zombie无法让它工作检查应该在onClick方法hi@Gary99中我在onClick方法中遇到问题,如果(file.exists()),它会在此处给出一个null指针异常{…嗨,我解决了它,如果在OnCalk!谢谢我的错误中输入了(文件!=空){是的,<代码> OnCcCK()/代码>就是它应该在哪里。我在回答的中间被邀请吃饭并且匆忙地复制和粘贴当前代码。我将修改它。
        if(file != null) {
             if(file.exists()){
                 file.getAbsoluteFile().delete();
                 Toast.makeText(MainActivity.this, "File deleted..", Toast.LENGTH_SHORT).show();
             }else
             {
                 Toast.makeText(MainActivity.this, "There is no file to delete.", Toast.LENGTH_SHORT).show();
             }
        }