내가해야 할 일은 사용자로부터 파일을 검색하고 검색 할 파일 이름의 일부인 사용자로부터 문자 집합을 가져 오는 것입니다. 일단 파일이 발견되면 전체 파일 이름과 함께 하위 폴더를 포함한 모든 위치를 표시합니다. 주어진 경로의 모든 파일을 가져 와서 파일에 넣습니다. 을 사용하여 파일 [ 배열] ListFiles(). 모든 파일의 이름을 가져와 arraylist에 저장하십시오. 다른 arraylist를 만들고 이전 arraylist의 확장자없이 파일 이름 만 저장하십시오. 그런 다음 사용자가 입력 한 문자 집합을 사용하여이 arraylist의 각 파일 이름과 비교합니다.이 작업이 제대로 작동하는지 테스트하려면 인쇄 된 파일 이름뿐 아니라 사용자가 입력 한 문자 집합과 일치하는 파일 이름을 모두 인쇄하십시오. . 여기 내 코드는 다음과 같습니다.Arraylist and files
import java.util.*;
import java.io.*;
public class FileSearch
{
public static void main(String args[])
{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(" 1.Enter the path to search:");
String str = br.readLine();
System.out.println(" 2.Enter some characters of the filename:");
String str1 = br.readLine();
File files = new File(str);
File[] f = files.listFiles();
List<String> li = new ArrayList<String>();
List<String> li1 = new ArrayList<String>();
for(int i=0;i<f.length;i++)
{
if(f[i].isFile())
{
li.add(f[i].getName());
}
}
for(int i=0;i<li.size();i++)
{
int j = li.get(i).lastIndexOf('.');
li1.add((j>-1)?li.get(i).substring(0, j):li.get(i));
}
for(int i=0;i<li1.size();i++)
{
if(li1.get(i).contains(str1));
{
System.out.println(li1.get(i));
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
정확히 일치합니다. 확장자가없는 li1 arraylist의 내용을 인쇄하고 있습니다. 무엇을하기 위해 노력하고 있습니까? – Joel
코드가 내게 맞는 것 같습니다. str1의 가치는 확실합니까? 디버거로 걸어가보십시오. – Joel
그냥 디버그하십시오. 도움이 필요한 경우 : [Eclipse Tutorial] (http://www.vogella.com/articles/EclipseDebugging/article.html) – moeTi