2012-05-31 3 views
0

org.eclipse.swt.widgets.FileDialog을 사용하여 이클립스 플러그인에서 파일 경로를 가져오고 XML 파일에 경로를 저장하고 있습니다.java.io.File의 경로 관련 문제

web.xml에

, 경로 내 필터에서

<init-param> 
    <param-name>filePath</param-name> 
    <param-value>c:\new\demo\next\version.txt</param-value> 
</init-param> 

(나는 값이 SWT의 FileDialog에서오고 있기 때문에 forwardslash 또는 백 슬래시를 이스케이프 backsladh 변경할 수 없습니다) 아래로 저장됩니다, 나는 코드 아래에 있습니다 하지만, 초기화() 메소드에 의한 특수 문자

String filePath = filterConfig.getInitParameter("filePath"); 
// Tried filePath.replace('\\','/') --> Didnot work since \n is a single character 
File f = new File(path) 
+0

더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –

+0

당신은 그것을 어떻게 읽고 계십니까? –

답변

0

나는 org.eclipse.swt.widgets.FileDialog를 사용하여 XML 파일의 경로를 저장하는 플러그인 이클립스 파일 경로를 얻고있다. web.xml에

가, 경로

SWT 파일 (값이 SWT 의 FileDialog에서오고 있기 때문에 내가 forwardslash에 backsladh 변경하거나 백 슬래시를 벗어날 수 없다) 아래로 저장 대화 상자 쓰지 않습니다 web.xml 파일. 그렇게하면 은 백 슬래시를 수정할 수 있습니다. 슬래시로 변경하십시오.

내가 초기화 코드 아래() 메소드를 가지고 있지만 인해 \ n을 고려하기 때문에

[의견 중 하나에서] 단일 문자를 작동하지 않았다 특수 문자 에 파일을 참조를 얻을 수 아니다

이는 데이터가 web.xml 파일의 이 잘못되었음을 의미합니다. 코드에서 수행 할 수있는 작업은 아무 것도 수정할 수 없습니다. 이것은 코딩 문제가 아닙니다. Java에서 백 슬래시를 처리 할 필요가 없습니다. 컴파일러는 이미이를 수행하므로이 경우 XML 파서가 웹 응용 프로그램 컨테이너에 있습니다. 파일 포맷을 정정해야합니다.

+0

감사합니다. @EJP, 지금은 작업 중이므로 해결책이 필요하므로 정확히 대답으로 받아들입니다. – user948246

2

\ n을이 새로운 라인으로 간주되기 때문에 내가 실제 경로를 가져올 수 없습니다에 파일 참조를 얻을 수 없습니다입니다.

이는 파일을 읽는 모든 것이 단순히 사실이 아닌 탈출을 가정하고 있음을 나타냅니다.

불행하게도, 당신은 쓰기에 사용되는 코드는 데이터를 읽을 데이터 또는을 사용하는 어떤 코드라고 우리에게 이야기하지 않았습니다. 그것은 어느 방향에서든 당신의 통제하에 있습니까?

기본적으로 이스케이프 처리는 이스케이프 처리와 동일합니다. 따라서 데이터를 쓸 때 c:\new\demo\next\version.txt에서 c:\\new\\demo\\next\\version.txt으로 이스케이프 처리하거나 읽는 중 이스케이프하지 않으려는 코드를 삭제할 수 있습니다. 데이터. 당신이 그대로 시도하면 것을

주 : 확실히 전혀 도움이되지 않습니다 다음

string.replace('\\', '/'); 

- 당신이 반환 값을 무시하고있다. 당신이 다음

string = string.replace('\\', '/'); 

을 시도하는 경우 그 해당 교체를 수행 할 뻔했지만 당신은 당신이 그 일을하려고하거나 작동하지 않았다 어떤 방법에 한 말을하지 않았다.

나는 실제로 대머리 백 슬래시를 빨간 청어로 여기고 있습니다. 근본적으로 당신은 이스케이프와 같은 방법으로 탈출해야합니다. 슬래시를 슬래시로 바꾸면 파일 이름에 도움이 될 수 있지만 은 대체 할 수없는 경우에만 다른 곳에서 문제가 발생합니다.

+0

web.xml에서 경로는 다음과 같이 저장됩니다 (값이 SWT FileDialog에서 나오기 때문에 백 슬래시를 백 슬래시 또는 이스케이프 백 슬래시로 변경할 수 없음) \ n filePath c : \ new \ demo \ next \ version. txt \ n 내 필터에서 init() 메서드에 다음 코드가 있지만 특수 문자로 인해 File 참조를 가져올 수 없습니다. String filePath = filterConfig.getInitParameter ("filePath"); // 시도한 filePath.replace ('\\', '/') -> \ n이 단일 문자이기 때문에 didnot 작업 File f = 새 파일 (경로) – user948246

+0

내 편집 된 질문보기 – user948246

+0

String.replace \ n가 단일 문자로 간주되기 때문에 작동하지 않는 반환 값을 무시하십시오. – user948246