2016-09-02 3 views
0

의 관계가 문자열로 주어진 두 파일 경로 고려 비교 :이 개 파일 경로

/path/to/dir 및 Java에서 /path/to/dir/file

을 어떻게 하나 개의 테스트, 그 이후의 파일 경로가 디스크에 실제 파일을 표현한다면, 이 값은 첫 번째 문자열이 나타내는 디렉토리보다 작거나 같습니다. File 방법 .getCanonicalPath에 의해

/path/to/dir /path/to/dir   (true)  
/path/to/dir /path/to/dir/file  (true) 
/path/to/dir /path     (false) 
/path/to/dir /path/to/dir/../../file (false) 
/path/to/dir file     (false) 
/path/to/dir /path/to/dir/dir2/../ (true) 

하나의 점을 제거겠습니까 다음 문자열 수준에서 확인하십시오 : 여기 여기에 의문을 제기하는 검사 기능의 일부 샘플 반환 값을 포함하여이 점을 명확히하기 위해 몇 가지 더 많은 예제입니다 ? 아마 더 좋은 방법이있을 것입니다. 나는 찾을 수 없었다, 무엇 File.compareTo 정확히 않습니다. 당신이 정식 경로가있는 경우

+0

'파일 방법 .getCanonicalPath하여 점을 제거하고 문자열 level' 확인하세요 그것은 소리 문자열 작업 등으로 인해 경로 구분 잘못 처리에 오류가 발생할 수 있습니다 당신 자신의 질문에 대답하는 법. 나는 그것이 작동하는지보기 위해 그것을 구현하는 것이 좋습니다. 문제가 있으면 항상 코드에 대해 질문 할 수 있습니다. – Linus

답변

0

,이 작업을 수행 할 수 있습니다

String path1 = "/path/to/dir" 
String path2 = "/path/to/dir/file" 

path2.beginsWith(path1); 

이의이 결과는 당신의 해답이 될 것입니다

1

기본 경로 작업을 사용하십시오. 당신이이 같은

Path path1 = Paths.get("/home").normalize(); 
Path path2 = Paths.get("/home/user/filename").normalize(); 

path2.startsWith(path1);