У меня есть путь к каталогу, передаваемый как аргумент в программе Java, и каталог имеет различные типы файлов. Я хочу получить путь к текстовым файлам, а затем добавить каждый текстовый файл. Я новичок в Java, любая рекомендация, как это сделать?Retrieveing путь к текстовым файлам в Каталоге с использованием Java
0
A
ответ
0
Начинать с чтения File API. Вы можете создать файл из строки и даже определить, exists()
или isDirectory()
. Также как список детей в этом каталоге.
1
Создайте объект File, представляющий каталог, затем используйте один из методов list() или listFiles() для получения дочерних элементов. Вы можете передать им фильтр, чтобы управлять возвращаемым.
Например, listFiles() method below вернет массив файлов в каталоге, принятом фильтром.
public File[] listFiles(FileFilter filter)
2
Даже если это не оптимальное решение, вы можете использовать его в качестве отправной точки.
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DirectoryWalker {
/**
* @param args
*/
private String extPtr = "^.+\\.txt$";
private Pattern ptr;
public DirectoryWalker(){
ptr = Pattern.compile(extPtr);
}
public static void main(String[] args) {
String entryPoint = "c:\\temp";
DirectoryWalker dw = new DirectoryWalker();
List<String> textFiles = dw.extractFiles(entryPoint);
for(String txtFile : textFiles){
System.out.println("File: "+txtFile);
}
}
public List<String> extractFiles(String startDir) {
List<String> textFiles = new ArrayList<String>();
if (startDir == null || startDir.length() == 0) {
throw new RuntimeException("Directory entry can't be null or empty");
}
File f = new File(startDir);
if (!f.isDirectory()) {
throw new RuntimeException("Path " + startDir + " is invalid");
}
File[] files = f.listFiles();
for (File tmpFile : files) {
if (tmpFile.isDirectory()) {
textFiles.addAll(extractFiles(tmpFile.getAbsolutePath()));
} else {
String path = tmpFile.getAbsolutePath();
Matcher matcher = ptr.matcher(path);
if(matcher.find()){
textFiles.add(path);
}
}
}
return textFiles;
}
}
Смежные вопросы
- 1. Доступ к текстовым файлам с использованием php?
- 2. Matlab - как указать путь к текстовым файлам в папке
- 3. Как присоединиться к 2 текстовым файлам с использованием сценариев bash?
- 4. Путь к файлам
- 5. Как перемещаться по всем текстовым файлам в каталоге C#
- 6. Доступ ко многим текстовым файлам в java
- 7. Путь к файлам изображений
- 8. доступ к файлам в другом каталоге приложений
- 9. Java Доступ к шестнадцатеричным текстовым файлам для HashMaping
- 10. Доступ к файлам Java классы в родительском каталоге
- 11. Доступ к файлам Java в файлах .tar с использованием Java
- 12. Как остановить доступ к текстовым файлам?
- 13. Присоединиться к текстовым файлам Влево-Вправо
- 14. Нет доступа к файлам в корневом каталоге
- 15. размещение путей к файлам в определенном каталоге в каталоге C#
- 16. Доступ к файлам Java
- 17. Перечислить относительные пути к файлам в каталоге
- 18. Как получить доступ к файлам в каталоге
- 19. относительный путь к файлам ресурсов?
- 20. путь пути к файлам рельсов
- 21. Специальный путь к файлам с точной загрузкой
- 22. Путь к программным файлам на удаленном компьютере
- 23. Доступ к файлам с использованием файла url
- 24. Аутентификация/отказ в доступе к файлам в каталоге с php
- 25. Доступ к файлам в HDFS с использованием Java
- 26. Обманывание с помощью API * nix приводит к искаженным текстовым файлам
- 27. Как «присоединиться» к двум текстовым файлам с помощью python?
- 28. Путь к файлам изображений в проекте
- 29. Итерации по конкретным файлам в каталоге с использованием Bash find
- 30. Итерации по всем файлам в каталоге с использованием BOOST_FOREACH
Попробуйте приведенные ниже предложения и отправьте исходный код, если вам нужна дополнительная помощь. –