これは私の最初の投稿ですので、私が持っている間違いをお許しください。私はまだ Stack Exchange の使い方を学んでいます。
.txt、.rtf、または .doc ファイル (およびその他のファイル) でいっぱいのディレクトリをスキャンしようとする Java プログラムを作成しようとしています。目的は、ディレクトリ内のすべてのファイルを検索し、特定の文字列がファイル内に存在するかどうかを調べることです。存在する場合は、文字列と、文字列が見つかったファイル名を返します。
このプログラムの目的は、プログラムがコール センターの従業員の個人フォルダーをスキャンして、CC/DC 番号が保存されているかどうかを確認し、保存されている場合はフォルダー名を報告して、CC 詐欺を減らすことです。
検索機能はかなり簡単で、ファイル名を個別に指定すると機能します。ただし、ディレクトリを検索してファイルを検索機能に渡すと、私は困惑しました。
これまでにコードを投稿しました。皆さんがそれを見て、フィードバックや提案をいただければ、本当に感謝しています。前もって感謝します
import java.io.*;
import java.util.*;
public class parse2{
void traverse(String directory) throws FileNotFoundException
{
File dir = new File(directory);
if (dir.isDirectory())
{
String[] children = dir.list();
for (int i=0; i<children.length; i++)
{
//System.out.println("\n" + children[i]);
reader(children[i]);
}
}
}
void reader(String loc) throws FileNotFoundException
{ //System.out.println("\nC:/Documents and Settings/h4d35/Desktop/javatest/chk/"+loc);
String s = ("C:/Documents and Settings/h4d35/Desktop/javatest/chk/"+loc);
//System.out.println("\n"+s);
FileReader fr = new FileReader(loc);
BufferedReader br = new BufferedReader(fr);
Scanner sc = new Scanner(br);
char[] chkArray;
int chk=1;
char ch;
while(sc.hasNext())
{
String chkStr = sc.next();
chkArray = chkStr.toCharArray();
if ((chkArray[0]=='4')&&(chkStr.length()>13))
{ for(int i=0;i<chkArray.length;i++)
{ ch=chkArray[i];
if((ch=='0')||(ch=='1')||(ch=='2')||(ch=='3')||(ch=='4')||(ch=='5')||(ch=='6')||(ch=='7')||(ch=='8')||(ch=='9'))
{ chk=0;
continue;
}
else
{ chk=1;
break;
}
}
if(chk==0)
System.out.println("\n"+ chkStr);
}
else
if((chkArray[0]=='5')&&(chkStr.length()>13))
{ for(int i=0;i<chkArray.length;i++)
{ ch=chkArray[i];
if((ch=='0')||(ch=='1')||(ch=='2')||(ch=='3')||(ch=='4')||(ch=='5')||(ch=='6')||(ch=='7')||(ch=='8')||(ch=='9'))
{ chk=0;
continue;
}
else
{ chk=1;
break;
}
}
if(chk==0)
System.out.println("\n"+ chkStr);
}
else
if((chkArray[0]=='6')&&(chkStr.length()>13))
{ for(int i=0;i<chkArray.length;i++)
{ ch=chkArray[i];
if((ch=='0')||(ch=='1')||(ch=='2')||(ch=='3')||(ch=='4')||(ch=='5')||(ch=='6')||(ch=='7')||(ch=='8')||(ch=='9'))
{ chk=0;
continue;
}
else
{ chk=1;
break;
}
}
if(chk==0)
System.out.println("\n"+ chkStr);
}
}
}
public static void main(String args[]) throws FileNotFoundException
{
parse2 P = new parse2();
P.traverse("C:/Documents and Settings/h4d35/Desktop/javatest/chk");
}
}
**
編集:変数「loc」はファイル名のみを提供するため、文字列変数「s」の下に残りのパスを追加しました。出力はありません。reader() 関数の 3 行目のコメントを外すと、すべてのファイルの絶対パスが表示されます。絶対パスを明示的に指定して、reader() 関数を単独で試してみましたが、うまくいきました。以下のコード:
java.io.* をインポートします。
import java.util.*;
公開クラスparse1{
void read() throws FileNotFoundException
{ FileReader fr = new FileReader("C:/Documents and Settings/h4d35/Desktop/javatest/chk/Call back customer.txt");
BufferedReader br = new BufferedReader(fr);
Scanner sc = new Scanner(br);
char[] chkArray;
int chk=1;
char ch;
while(sc.hasNext())
{
String chkStr = sc.next();
chkArray = chkStr.toCharArray();
if ((chkArray[0]=='4')&&(chkStr.length()>13))
{ for(int i=0;i<chkArray.length;i++)
{ ch=chkArray[i];
if((ch=='0')||(ch=='1')||(ch=='2')||(ch=='3')||(ch=='4')||(ch=='5')||(ch=='6')||(ch=='7')||(ch=='8')||(ch=='9'))
{ chk=0;
continue;
}
else
{ chk=1;
break;
}
}
if(chk==0)
System.out.println("\n"+ chkStr);
}
else
if((chkArray[0]=='5')&&(chkStr.length()>13))
{ for(int i=0;i<chkArray.length;i++)
{ ch=chkArray[i];
if((ch=='0')||(ch=='1')||(ch=='2')||(ch=='3')||(ch=='4')||(ch=='5')||(ch=='6')||(ch=='7')||(ch=='8')||(ch=='9'))
{ chk=0;
continue;
}
else
{ chk=1;
break;
}
}
if(chk==0)
System.out.println("\n"+ chkStr);
}
else
if((chkArray[0]=='6')&&(chkStr.length()>13))
{ for(int i=0;i<chkArray.length;i++)
{ ch=chkArray[i];
if((ch=='0')||(ch=='1')||(ch=='2')||(ch=='3')||(ch=='4')||(ch=='5')||(ch=='6')||(ch=='7')||(ch=='8')||(ch=='9'))
{ chk=0;
continue;
}
else
{ chk=1;
break;
}
}
if(chk==0)
System.out.println("\n"+ chkStr);
}
}
}
public static void main(String args[]) throws FileNotFoundException
{
parse1 P = new parse1();
P.read();
}
}
**