2016-09-21 3 views
1

Хотите проверить, нет ли методов для обработки ссылок на файл/путь.с учетом регистра обработки имен файлов

Это используется как поиск файла с расширением «.pdf» и/или «.PDF» в каталоге, не зная, находится ли он в верхнем или нижнем регистре.

java.nio.file.Files, похоже, нет. единственный способ, о котором я могу думать, - проверить оба случая или использовать String.equalsIgnoreCase().

есть ли лучший способ сделать это?

+0

Возможно, 'FileUtils.listFiles (theDir, new String [] {" pdf "," PDF "}, ...)' с 'FileUtils' из [apache-commons] (https://commons.apache.org /proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html#listFiles(java.io.File,%20java.lang.String[],%20boolean))? –

+0

@RC не может оставить свой комментарий. ans получает его. – user6762070

+0

Итак, вопрос был «Как удалить расширение из имени файла?», В соответствии с принятым ответом .. –

ответ

0

вы можете использовать внешнюю баночку, как Apache-достоянию, и прочитать файл не заботясь о чувствительности типа расширения или случая

import org.apache.commons.io.FilenameUtils; 
String fileNameWithOutExt = FilenameUtils.removeExtension(fileNameWithExt); 

Там также другие способы помогут вам там: How to get the filename without the extension in Java?

0

Вы можете использовать a FileNameFilter , что-то вроде:

File folder = Paths.get("/path/to/folder").toFile(); 
String[] pdfs = folder.list((dir, name) -> name.endsWith(".pdf") || name.endsWith(".PDF")); 

В качестве альтернативы, можно использовать Files::list:

Files.list(Paths.get("c:/temp")) 
    .filter(p -> p.getFileName().toString().endsWith(".pdf") || 
        p.getFileName().toString().endsWith(".PDF")) 

Затем вы можете действовать в потоке или собирать его в список, например.

Смежные вопросы