java 查询电脑磁盘某个文件夹中是否存在文件名相同的文件

如题所述

当前电脑中同一个文件夹下是不允许有相同的文件的,如果是想查询某个文件夹下是否有某个文件是可以实现的。
可以通过File的exists方法进行查询是否匹配,如果存储就返回真,不存在返回假。
举例:
public static String fileExists(String filePath){
File file=new File(filePath);
if(!file.exists()) {
return "false";//如果存在输出结果
} else{
return "true";
}
}
备注:以上方法只需要传入“文件的路径+对应的文件名”(filePath),之后即可判断是否存在,如果循环判断,那么就多次调用此方法即可。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-24

你是说文件名相同,扩展名不同吗

// 将重复的文件名添加到ArrayList
// Map的key是文件名(不含扩展名),value是重复文件名的List
Map<String, ArrayList<String>> map = new HashMap<String,ArrayList<String>>();
File folder = new File("d:/test/");
if (folder.exists() && folder.isDirectory()) {
File[] files = folder.listFiles();
for (File f : files) {
// 得到文件名(不含扩展名)
String name = f.getName().substring(f.getName().lastIndexOf("\\.")+1);
if (map.containsKey(name)) {
ArrayList<String> list = map.get(name);
if (list == null) {
list = new ArrayList<String>();
map.put(name, list);
}
list.add(f.getName());
}
else {
ArrayList<String> list = new ArrayList<String>();
list.add(f.getName());
map.put(name, list);
}
}
}

// 输出重复的文件名
Iterator<String> itKeys = map.keySet().iterator();
while (itKeys.hasNext()) {
ArrayList<String> filenames = map.get(itKeys.next());
if (filenames != null && filenames.size() > 1) {
for (String filename : filenames) {
System.out.println(filename);
}
}
}

第2个回答  2014-04-24

    前提是不包括后缀

    package p1;

    import java.io.File;
    import java.io.FilenameFilter;
    import java.util.ArrayList;

    public class Judger
    {
    private static boolean isContainedSamed ( String src )
    {
    File srcFile = new File (src);
    String[] strs = srcFile.list ();
    for ( int i = 0; i < strs.length; i++ )
    {
    for ( int j = i + 1; j < strs.length; j++ )
    {
    String first = strs[i].substring (0, strs[i].lastIndexOf ('.'));
    String second = strs[j].substring (0, strs[j].lastIndexOf ('.'));
    if (first.equals (second))
    {
    return true;
    }
    }
    }
    return false;
    }

    public static void main ( String[] args )
    {
    System.out.println (isContainedSamed ("I:/DaSh EX 汉化版"));
    }
    }

本回答被网友采纳
第3个回答  2014-04-24
同一个文件夹中不可能存在同名文件。
如果是不同的文件夹,可以考虑使用HashMap存储文件信息,文件名作为key,每发现一个文件都查询该HashMap中是否存在,否则存入该HashMap中。
第4个回答  2014-04-24
主要用到的是“递归遍历”(这类代码网上一大把)
拿到文件名的字符串在比较。
相似回答