【问题标题】:How to check two file exist in same folder?如何检查两个文件是否存在于同一个文件夹中?
【发布时间】:2018-08-30 03:56:24
【问题描述】:

有没有办法检查同一文件夹中是否存在两个文件,例如文件夹 Testapp 中的 music1.mp3music2.mp3
这是我的代码检查一个文件:

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

【问题讨论】:

标签: java android


【解决方案1】:

这样做

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 在 cmets 中建议的更有效的方法

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
}

【讨论】:

  • 多么复杂的解决方案!
  • 最糟糕的解决方案。
  • 稍微好一点,不过还是不用做目录列表比较文件名,直接测试是否存在就可以了。
  • @Henry 非常感谢您提供的信息,我已根据建议更新了答案
【解决方案2】:

您可以通过检查两个文件的父路径

来做到这一点
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
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 2014-06-11
    • 2011-11-15
    • 1970-01-01
    相关资源
    最近更新 更多