"이 사람은 숙제를 요청합니다."와 같은 것을 추측하기 전에 내가 가질 수있는 의구심을 제거하고 예라고 대답합니다. 이는 숙제와 관련이 있습니다. 그러나이 질문이 저에게 제공하는 학습 및/또는 앞으로 이것을 읽는 모든 사람을 포기하지 않기를 바랍니다.재귀 : 디렉토리의 파일 확인 및 읽기
배경 : 우리는 현재 재귀 작업을하고 있습니다. 우리는 명령 인수를 사용하여 디렉토리와 파일 내용에 문자열 (명령 인수이기도 함)을 검사하는 프로그램을 작성하라고합니다. 우리는 재귀를 사용해야합니다.
- 난 내가 할당이 단순히 요구하고 을 요구하고 이해하는 것이이 명확하게하려면 어떻게 그냥 이해가 안가 재귀이 일 때문에.
우리는 디렉토리의 크기를 찾아야 만하는 것이 문제가되었지만 뭔가가 디렉토리인지 파일인지를 확인하는 방법을 모르고 그 내용을 읽거나 더 깊이 간다. 우리가 파일을 찾을 때까지 디렉토리에.
다음은 현재 수행 한 작업입니다. 정확히 내가 디렉토리의 할당을 확인했기 때문에 이것이 얼마나 잘못되었는지는 알지 못한다.
확인할 폴더는 다음과 같다 : 디렉토리 --- > 파일은 주 디렉토리 --- >>를 --inside 해당 디렉토리 모두
공용 클래스 SearchingForStrings {
public static void main(String[] args) {
String path = "."; // default location of this project
File sf = new File(path);
String mysteriesDirectory = args[0];
String keyString = args[1];
countLinesWithString(sf, mysteriesDirectory, keyString);
}
public static int countLinesWithString(File startPath, String mysteriesDirectory, String keyString) {
if(!startPath.exists()) {
throw new IllegalArgumentException("File " + startPath + " does not exist!");
} else if(startPath.isFile()) {
return Integer.parseInt(startPath.getAbsolutePath()); // Just to show where the file is I located the parsing is just to stop an error from flagging on this part; Going to ask professor if it's okay with him
// this is where we would begin reading the contents of the files
} else if(startPath.isDirectory()) {
// This is where our recursion would take place: essentially
// we will be going 'deeper' into the directory until we find a file
//File[] subFiles = startPath.listFiles();
countLinesWithString(startPath, mysteriesDirectory, keyString);
} else {
throw new IllegalStateException("Unknown file type: " + startPath);
}
}
} 한마디로
내에서 두 디렉토리 ----> 파일 : 누군가가 수 재귀가 얼마나 좋을지 설명하십시오. 당신이 더 깊은 감독으로 가고 싶다면 k?
이것은 다소 의미가 있습니다 - 오전 2시 10 월 31 일과 그 거의 나의 침대 시간부터 올라가고 있기 때문에 나는 아침에 그것을 시도 할 것입니다. 당신이 여전히 더 많은 조언을 기꺼이 원한다면 나는 대답 할 것이다. 도움이되는 의견을 보내 주셔서 다시 한 번 감사드립니다. 내일 아침에 다시 오십시오. –
조금 생각한 후에, 나는 당신이 여기서 쓴 것을 정말로 이해할 수 없다. 정확히 '항목'은 파일이라는 것을 알지만 그게 무엇입니까? 파일의 위치를 유지하는 변수입니까, 아니면 경로에 새 파일을 만드시겠습니까? 왜 –
루프의 시작과 함께 이것을 "dir의 각 항목에 대해"정의하려고했습니다. 항목은 디렉토리의 한 가지 항목으로, (데이터) 파일 또는 다른 디렉토리 중 하나 일 수 있습니다. 즉, 데이터 파일이나 디렉토리에 대한 참조를 보유하는 변수입니다. 루프는 메소드의 매개 변수로 전달 된 디렉토리의 모든 항목을 통과합니다. (이렇게 곧 돌아올 것으로 기대하지 않았다 ...) – arcy