これは私の最初の投稿ですので、私が持っている間違いを親切に赦してください。私はまだスタックエクスチェンジの周りに自分の道を見つけることを学んでいます。ファイルのディレクトリの解析 - 文字列の確認
私は、.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");
}
}
**
EDIT:変数「LOCは、」ファイル名のみを与える - ので、私は文字列変数「S」の下で、それへのパスの残りの部分を追加しました。出力はありません。 reader()関数の3行目のコメントを外すと、すべてのファイルの絶対パスが表示されます。私は、絶対パスを明示的に指定することで独自のreader()関数を試してみました。以下のコード:
import 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();
}
}
**
ディレクトリへのフルパスを 'traverse()'メソッドに渡していますが、 'list()'がフルパスを指定していないファイル名を表示する際に気づかれませんでしたか? – madth3
ここに質問される質問はありません。 –
@ madth3 - これを克服するために、私は自分のコードにこれを追加しました-----------> String s =( "C:/ Documents and Settings/h4d35/Desktop/javatest/chk /" + loc ); \t \t //System.out.println("\n"+s); \t \t FileReader fr =新しいFileReader(s); – rahuL