변경의 주요 목적을 디버깅 :
import java.io.File;
public class Copier {
public static void find(String source,String rep)
{
File src=new File(rep);
if(src.exists() && src.isDirectory())
{
String[] tab=src.list();
for(String s:tab)
{
File srcc=new File(rep+"\\"+s);
if(srcc.isFile())
{
if(srcc.getName().matches(".*"+source+"$"))
System.out.println(s);
}
else
find(source,srcc.getAbsolutePath());
}
}
}
public static void main(String[] args)
{
find(".php","C:\\");
}
}
하지만 난이 예외가있다.
public static void main(String[] args)
{
try {
find(".php","C:\\");
} catch (Exception e) {
e.printStackTrace();
}
}
그리고
if (src != null && src.exists() && src.isDirectory())
편집에 널 체크를 추가
다음
나를 위해 잘 작동, (나는 윈도우 7을 사용하고 있습니다).
import java.io.File;
public class Copier {
public static void find(String source,String rep) {
File src = new File(rep);
if (src!= null && src.exists() && src.isDirectory()) {
String[] tab = src.list();
if (tab != null) {
for(String s : tab) {
File srcc = new File(rep+"\\"+s);
if (srcc.isFile()) {
if (srcc.getName().matches(".*"+source+"$")) {
System.out.println(s);
}
} else {
find(source,srcc.getAbsolutePath());
}
}
} else {
//System.out.println(" list is null");
}
}
}
public static void main(String[] args) {
try {
find(".java", "C:\\");
} catch (Exception e) {
e.printStackTrace();
}
}
}
내 생각에'src.list()'는 null을 반환했지만 줄 수를 추측하고 있습니다. 디렉토리에 대한 권한이 없기 때문에 이러한 상황이 발생할 수 있습니다. –
예 그렇지만 관리자에게 문의하십시오. –
그 행에 오류가 발생한 곳이면 어떤 이유로 파일 오류가 발생합니다. 'canRead'로 위치를 테스트 해보십시오. –