То, что я пытаюсь достичь, это в основном файл Java, который просматривает конкретный каталог на компьютере пользователя, ищет все файлы в каталоге для определенного слова (в этом случае электронное письмо), а затем в конце распечатать их.Чтение нескольких файлов в каталоге и печать определенного содержимого
Текущий скрипт, который у меня есть, ищет все файлы в определенном каталоге, распечатывает эти имена файлов. Кроме того, я также выяснил, как выполнить поиск этого сценария через один файл для определенного слова, а затем распечатать его. Единственная проблема заключается в том, что, хотя он ищет через этот один файл и получает это слово/фразу, ему нужно предоставить полный каталог и файл для работы. Я просто хочу, чтобы у него был определенный каталог, а затем поиск всех файлов в нем. Я попытался сделать это, используя переменную каталога, которую я создал, чтобы найти все файлы, но она не работает при использовании этого в качестве каталога файлов для поиска, чтобы найти слово (ы).
Здесь внизу находится часть моего кода, которая используется для функции, которую я хочу. Фактическая функция вызывается в моем реальном скрипте, поэтому не беспокойтесь об этом, поскольку она работает. Я также просто прокомментировал в скрипте какую переменную я хочу работать где.
package aProject;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class aScanner {
static String usernameMac = System.getProperty("user.name");
final static File foldersMac = new File("/Users/" + usernameMac + "/Library/Mail/V2"); // this is the right directory I want to look through
public static void listFilesForFolder(final File foldersMac) {
for (final File fileEntry : foldersMac.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry);
try {
BufferedReader bReaderM = new BufferedReader(new FileReader("/Users/username/Library/Mail/V2/AosIMAP-/INBOX.mbox/longnumber-folder/Data/Messages/1.emlx")); //this is where I would like the foldersMac variable to work in, instead of this full directory
String lineMe;
while((lineMe = bReaderM.readLine()) != null)
{
if(lineMe.contains(".com"))
System.out.println(lineMe);
}
bReaderM.close();
}
catch (IOException e) {
}
} else {
System.out.println(fileEntry.getName());
}
}
}
}
Не забудьте закрыть этот читатель, в случае, если есть аз IOException или любое другое поведение. Я бы предпочел применить этот метод .close() внутри блока finally. – JSONStatham