You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何检测同一文件夹下两个文件是否存在?附单文件检测代码示例

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

没问题!你已经搞定了单个文件的检查逻辑,扩展到多个文件其实非常简单,还能把代码写得更整洁。针对你要检测Testapp文件夹里的music1.mp3music2.mp3,我给你两种实用的实现方式:

方式一:直接分别检查两个文件

先把公共的文件夹路径提取出来,避免重复写冗余路径,再逐个创建文件对象做存在性检查:

// 提取Testapp文件夹的路径,让代码更简洁
String testAppFolderPath = Environment.getExternalStorageDirectory() + "/Testapp/";

// 创建两个目标文件的对象
File music1File = new File(testAppFolderPath, "music1.mp3");
File music2File = new File(testAppFolderPath, "music2.mp3");

// 判断两个文件是否都存在
if (music1File.exists() && music2File.exists()) {
    // 两个文件都存在时执行的逻辑
    // do something
} else {
    // 至少一个文件不存在的处理分支
    if (!music1File.exists()) {
        // 处理music1.mp3不存在的情况
    }
    if (!music2File.exists()) {
        // 处理music2.mp3不存在的情况
    }
}

方式二:封装成工具方法(适合后续扩展)

如果以后需要检查更多文件,写一个通用的工具方法会更高效,还能先判断文件夹本身是否合法:

// 通用检查方法:验证指定文件夹下的所有传入文件是否都存在
private boolean checkAllFilesExist(String directoryPath, String... fileNames) {
    // 先确认目标文件夹存在且是目录
    File targetDir = new File(directoryPath);
    if (!targetDir.exists() || !targetDir.isDirectory()) {
        return false;
    }
    // 遍历所有要检查的文件名,只要有一个不存在就返回false
    for (String fileName : fileNames) {
        File currentFile = new File(targetDir, fileName);
        if (!currentFile.exists()) {
            return false;
        }
    }
    return true;
}

调用这个方法也很省心:

String testAppFolderPath = Environment.getExternalStorageDirectory() + "/Testapp/";
boolean bothMusicsExist = checkAllFilesExist(testAppFolderPath, "music1.mp3", "music2.mp3");

if (bothMusicsExist) {
    // 两个文件都存在的逻辑
} else {
    // 至少一个文件不存在的逻辑
}

小提醒

别忘了在AndroidManifest.xml中声明存储权限,Android 6.0及以上还需要动态申请READ_EXTERNAL_STORAGE权限(如果是访问外部公共存储的话);Android 10及以上访问非私有目录时,可能需要额外的权限配置哦。

内容的提问来源于stack exchange,提问作者mr.sad3s

火山引擎 最新活动