检查sdcard特定文件夹上的文件

时间:2016-10-21 10:13:18

标签: android android-sdcard android-file

我正在尝试简单检查文件是否存在。我在这里看到了类似的问题,但他们没有帮助。 我写了一些代码来检查文件是否存在

private String checkIfFileExist(String fileName) {
    String root_sd = Environment.getExternalStorageDirectory().toString();
    File file = new File(root_sd + "/myfolder");
    if (file != null) {
        File list[] = file.listFiles();
        if (list != null && list.length > 0) {
            for (int i = 0; i < list.length; i++) {
                if (list[i].getName().equals(fileName)) {
                    return list[i].getName();
                }
            }
        }
    }
    return null;
}

我尝试检查文件是否不存在然后在这个文件夹中保存一些文件。我有问题。例如在我的文件夹中我有myimage.png文件,我的代码不能完美,因为myimage.png也下载了,我有两个文件myimage.png和mypng-1.png 我不知道我的代码中有什么问题

4 个答案:

答案 0 :(得分:0)

试试这个

String path=<YOUR FOLDER PATH + APPEND FILE NAME>;
File newfile=new File(path);
 if (newfile.exists())
 {
  //Do your task
 }

或只是

private String checkIfFileExist(String fileName) {
   String root_sd = Environment.getExternalStorageDirectory().toString();
   String root_sd = Environment.getExternalStorageDirectory().toString();
   File file = new File(root_sd + "/myfolder/"+filename);
   if (file.exists())
    {
      return file.getName();
    }else
    {
     return null;
    }
  }

答案 1 :(得分:0)

我希望这可以帮助你

   File file = new File(root_sd + "/myfolder");
if (file.exists()) {
    File list[] = file.listFiles();
    if (list != null && list.length > 0) {
        for (int i = 0; i < list.length; i++) {
            if (list[i].getName().equals(fileName)) {
                return list[i].getName();
            }
        }
    }

答案 2 :(得分:0)

尝试以下代码,它适合我。

  File file = new File(Environment.getExternalStorageDirectory().getPath() + "/myfolder/" + filename);
     if (path.exists()) {
    //do what ever you need to do
    }

答案 3 :(得分:0)

您还应检查文件名。

File file = new File(root_sd + "/myfolder/"+filename);
if (file.exists()){
 // write your logic for  file exist here 
}else {
//write your logic for  file does not exist  here 
}