Мне нужно найти текст во всех файлах каталога и подкаталогов любой умной идеи?Поиск рекурсивно в текстовых файлах в каталоге с java?
4
A
ответ
17
Используйте метод org.apache.commons.io.FileUtils.iterateFiles()
из Apache commons-io
Из Javadoc:
Позволяет итерацию над файлами в данном каталоге (и, возможно, его подкаталоги), которые соответствуют массив расширений.
Например:
Iterator iter = FileUtils.iterateFiles(directory,
new String[]{"txt","java"}, true);
while(iter.hasNext()) {
File file = (File) iter.next();
searchInFile(file);
}
4
Try класс с рекурсивным методом что-то вроде этого:
public class Searcher {
private String toFind, toReplace;
// whatever other info you need
public void searchInTextFiles(File dir) {
File[] a = dir.list();
for (File f : a) {
if (f.isDirectory()) {
searchInTextFiles(f);
} else if (f.name().endsWith(".txt")) {
searchInFile(f);
}
}
}
private void searchInFile(File f) {
// do whatever you need to do on f using fields from this class
}
}
0
// редактировать и есть определить CheckFile FUNCT ...
void Found(String dir,Vector flist){
File srchdir(dir);
File[] listf=listFiles();
for(int i=0;i<srchdir.listf.length;i++){
if(listf[i].isDirectory()){ Found(dir+"/"+listf[i].getName(),flist);
}else{ if(CheckFile(listf[i])) flist.add(dir+"/"+listf[i].getName()); }
}
}
Vector Found(String dir){
File srchdir(dir);
Vector flist=new Vector();
File[] listf=listFiles();
for(int i=0;i<srchdir.listf.length;i++){
if(listf[i].isDirectory()){ Found(dir+"/"+listf[i].getName(),flist);
}else{ if(CheckFile(listf[i])) flist.add(dir+"/"+listf[i].getName()); }
}
return flist;
}
4
Runtime.getRuntime().exec("grep", "-r", <searchText>);
1
это мое решение. Он ищет строку «searchText» в каталоге java-проекта. Надеюсь, это поможет кому-то.
package textSearch;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Scanner;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.RegexFileFilter;
import org.apache.commons.io.filefilter.TrueFileFilter;
public class TextSearchingInFilesInDirectory {
private static String filePath ="";
static int fileCount = 0;
static String fileName ;
static int lineNumber=0;
private static final String folderPath = "C:\\Users\\omertasci\\EclipseWorkspace\\AnyProjectName\\src";
public static void main(String[] args) throws FileNotFoundException{
File dir = new File(folderPath);
List<File> files =(List<File>) FileUtils.listFiles(dir, TrueFileFilter.INSTANCE, DirectoryFileFilter.DIRECTORY);
for (File file : files) {
try {
System.out.println(file.getCanonicalPath()+ " is scanned.");
filePath=file.getCanonicalPath();
if (file.isFile()) {
//System.out.println(file.getName());
fileName=file.getName();
try {
FileReader reader = new FileReader(filePath);
BufferedReader br = new BufferedReader(reader);
String s;
while((s = br.readLine()) != null) {
lineNumber++;
if(s.contains("searchingText")){ // you can change searchText with any keyword .
System.out.println("searchingText is found in "+ file.getName()+ " at "+lineNumber+". line.\n"+ "----"+s.trim()+ "----");
}
}
reader.close();
}
catch(Exception e){
e.printStackTrace();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Смежные вопросы
- 1. Найти количество текстовых файлов в каталоге рекурсивно
- 2. поиск текстовых фраз в текстовых или pdf-файлах с php
- 3. Поиск в больших текстовых файлах журнала
- 4. Поиск индексов непустых полей в текстовых файлах
- 5. Поиск и сортировка в текстовых файлах
- 6. поиск определенного значения в текстовых файлах
- 7. Поиск в текстовых файлах до определенной строки
- 8. Поиск списка слов в нескольких текстовых файлах
- 9. Заменить значения в текстовых файлах в каталоге в Python
- 10. Командная строка для поиска всех файлов во всех текстовых файлах в каталоге рекурсивно
- 11. Поиск максимального значения во всех файлах в каталоге
- 12. Поиск строк в текстовых файлах и их поиск
- 13. Java - Поиск файлов в каталоге
- 14. Поиск рекурсивно для файлов в родительском каталоге в Linux
- 15. Поиск в текстовых файлах с использованием Windows Grep
- 16. Поиск и замена в текстовых файлах - С RegEx Шаблону
- 17. Поиск фразы/слова в текстовых файлах с помощью php
- 18. Чтение, запись и поиск в текстовых файлах с помощью Qt
- 19. Быстрый поиск текста в файлах в каталоге в unix?
- 20. Считайте строки в файлах в папках рекурсивно
- 21. Поиск строки в нескольких файлах в каталоге в UNIX
- 22. Поиск дубликатов записей в очень больших текстовых файлах в bash
- 23. поиск текста в текстовых файлах, присутствующих в 25 разных папках
- 24. Рекурсивно Поиск в каталоге для всех путей к папкам
- 25. Unix ищет подстроку в файлах в каталоге
- 26. Поиск каталога в другом каталоге в Java
- 27. Java: Рекурсивно Поиск минимального элемента в списке
- 28. Использование sed в текстовых файлах с csv
- 29. поиск по шаблону во всех файлах в каталоге
- 30. Python: Поиск значений после поиска строки в текстовых файлах
+1, потому что, ха –
+ 1, но должно быть новым String [] { "- г"} хороший пример –