私が達成しようとしているのは、基本的に、ユーザのコンピュータ上の特定のディレクトリを調べるディレクトリで、特定の単語(この場合は電子メール) )、最後にそれらを印刷します。ディレクトリ内の複数のファイルを読み取って特定のコンテンツを印刷する
現在の私のスクリプトは、特定のディレクトリ内のすべてのファイルを検索し、それらのファイル名を出力します。それと同様に、私は特定の単語のための1つのファイルを通してそのスクリプトを検索させ、それを印刷する方法も考え出しました。唯一の問題は、その1つのファイルを検索してその単語/句を取得しても、完全なディレクトリとファイルを指定する必要があることです。私はそれが特定のディレクトリを持って、その中のすべてのファイルを検索したいだけです。私はすべてのファイルを見つけるために作成したディレクトリ変数を使用してこれを試みましたが、単語を見つけるためにファイルを検索するためのディレクトリとしてそのディレクトリを使用すると動作しません。
ここでは、私のコードの一部であり、私が望む機能のために使用されています。実際の関数は私の実際のスクリプトで呼び出されますので、それが動作しているとして心配しないでください。私はスクリプトの中で、どこで働きたいのかをコメントしました。
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());
}
}
}
}
AZのIOExceptionまたはその他の行動があった場合には、そのリーダーを閉じることを忘れないでください。むしろ、.close()メソッドをfinallyブロックの中に配置したいと思います。 – JSONStatham