Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查同一文件夹中是否存在两个文件?_Java_Android - Fatal编程技术网

Java 如何检查同一文件夹中是否存在两个文件?

Java 如何检查同一文件夹中是否存在两个文件?,java,android,Java,Android,是否有方法检查同一文件夹中是否存在两个文件,如Testapp文件夹中的music1.mp3和music2.mp3? 这是我的代码检查一个文件: File f = new File(Environment.getExternalStorageDirectory()+"/Testapp/music1.mp3"); if(f.exists()) { /* do something */ } else { /* do something */ } 这样做 File yourDir =

是否有方法检查同一文件夹中是否存在两个文件,如Testapp文件夹中的music1.mp3和music2.mp3?
这是我的代码检查一个文件:

File f = new File(Environment.getExternalStorageDirectory()+"/Testapp/music1.mp3");
if(f.exists()) { 
   /* do something */ 
} else {
   /* do something */ 
}
这样做

File yourDir = new File(Environment.getExternalStorageDirectory(), "Testapp");
for (File f : yourDir.listFiles()) {
if (f.isFile()){
    String name = f.getName();
    if(name.equals("music1.mp3")) {
    // music1.mp3 present
    } else if(name.equals("music2.mp3")) {
    // music2.mp3 present
    }
  }
}
下面@Henry在评论中提出了更有效的方法

File file1 = new File(Environment.getExternalStorageDirectory()+"/Testapp/music1.mp3");
File file2 = new File(Environment.getExternalStorageDirectory()+"/Testapp/music2.mp3");
if (file1.exists()) {
 // music1.mp3 present
} else if (file2.exists()) {
 // music2.mp3 present
}

您可以通过检查两个文件的父路径来执行此操作

File f1 = new File("pathone");
File f2 = new File("pathtwo");
if (f1.exists()&&f2.exists()) {
   if (f1.getParent().equals(f2.getParent())) { 
      //both in same folder
   } else {
      //diff folder
   }
}

为什么不简单地对第二个文件执行相同的操作呢?试试这个多么复杂的解决方案!最糟糕的解决方案。稍微好一点,但当您可以直接测试是否存在时,仍然不需要做目录列表和比较文件名。@Henry非常感谢您提供的信息,我已根据建议更新了答案