これは半宿題で、何年も試してきましたが、運が悪かったので、基本的に検索エンジンのようなプログラムを実行しています。このプログラムでは、ディレクトリとそのサブディレクトリのファイルを読み取り、テキストファイルを読み取って一致するものを検索します。 、私は延々と検索しましたが、明確な答えがなかったので、誰か助けていただければ幸いです。
これは私の最善の試みでしたが、サブディレクトリからファイルを取得し、メイン/ルートディレクトリを無視するという問題があり、理由を理解しようとしましたが、できませんでした。
public void indexDirectory(File dir) {
for(int i=0;i<50;i++)
ls[i]=new LinkList();//array of Linked lists to store addresses of each Linked list that has a file
try{
files= dir.listFiles();
for (int i = 0; i < files.length; i++) {
if(files[i].isDirectory())
indexDirectory(files[i]);
if(files[i].isFile()){
if(files[i]!=null)
indexFile(files[i]);
} //end if(isFile)
} //end For loop
}catch(FileNotFoundException e){
System.out.println("error ");
}}
Webを検索し、見つけたものをエミュレートしようとした後の2番目のバージョンですが、残念ながら機能しませんでした。
public void indexDirectory(File dir) {
for(int i=0;i<50;i++)
ls[i]=new LinkList();
try{
if(dir.isFile()){
indexFile(dir); //this method takes each directory and read the words and save them in
// array of linked list
}
else if(dir.isDirectory()){
files= dir.listFiles();
if(files!=null) {
for (int i = 0; i < files.length; i++) {
if(files[i].isDirectory()){
indexDirectory(files[i]); //recursive call
}}
}catch(FileNotFoundException e){
System.out.println("error ");
}}