Скорее всего, проблема будет в этой строке:
return f.isFile() || f.getName().toLowerCase().endsWith(".csv");
Это вернет true, если Файл f
является файлом, независимо от того, является ли он файлом .csv.
Возможно, вы хотите условие И (&&), а не ИЛИ (||). Вы хотите принять любой файл, где это файл и его расширение .csv.