2010-02-25 4 views
0

컴퓨터에서 위치를 참조하려고하지만 Java에서 잘못된 구문이 있음을 알려줍니다.파일 참조, 올바른 구문은 무엇입니까

이 줄이 맞습니까?

File newlyUploadedFile = new File("D:\\" + fileName);

문제는 파일이 나는 그것이 가고 싶은 위치에 제대로 업로드됩니다,하지만 난 오류 얻을 :

java.io.IOException: The filename, directory name, or volume label syntax is incorrect

+0

이전에 본 단일 슬래시는 이중 슬래시로되어 있습니다. – Ankur

+1

전체 기능을 게시해야합니다. 지금 코드가 잘못 된 부분을 우리가 알 수있는 방법이 없습니다. – futureelite7

답변

6
항상 자바 문자열에서 백 슬래시 이스케이프

을.

File newlyUploadedFile = new File("D:\\" + fileName); 

IOException이

는 사용자가 파일 이름에 지정된 파일을 찾을 수 없습니다 시스템에 의해 발생합니다. 추가하려고하면

newlyUploadedFile.exists(); 

을 반환하고 결과를 확인하십시오. 경로가 false를 반환하면 파일 이름에 실수가 있습니다.

+0

이것이 문제라고 생각하지 않습니다. String 리터럴에서 이스케이프가 누락되면 IOException이 아닌 Java 컴파일 오류가 발생합니다. –

+0

그래, 나도 알아 챘다. 그러나 슬래시가 누락되면 경로에 문제가 발생할 수 있습니다. – futureelite7

+0

@ futureelite7 - 당신은 가정을하고 있습니다. 우리는'fileName'에 실제로 무엇이 들어 있는지 알지 못합니다. 만약 (이미)'\\'로 시작한다면? –

3

먼저 질문에 표시된 코드가 컴파일되지 않습니다. 그러나 IOException을 보았으므로 분명히 다른 코드가 실행 중입니다.

pathname 구문에 대해 불평하는 IOException을 얻으려면 실제로 pathname에 문제가 있어야합니다. "D:\\" + fileName은 실제로 무엇을 제공합니까? 무엇인지 확인하려면 System.err.println(...)에 전화를하십시오.

+0

감사합니다. 시도해 보겠습니다 ...하지만 컴파일되지 않는 이유는 무엇입니까? - 간단하고 모든 코드를 제공하지 않으려 고 노력했습니다. 그러나 내가 왜 주어진 비트가 컴파일되지 않는지 나는 알지 못한다. – Ankur

+0

@Ankur - 이제 컴파일 할 질문의 텍스트를 수정했습니다 :-) –

1

주 :

  1. 는 그 예외 텍스트가없는 자바에서, Windows 운영 체제에서오고있다.

  2. Java 파일 이름에 백 슬래시를 사용할 필요가 없습니다. 적어도 내가 13 년 만에 한번도 만난 적이 없다면.

+0

왜 downvote인지 알고 싶습니다. 여기에 사실적 오류가 전혀 없습니다. – EJP

+0

반대 투표했습니다. 실제로 완전히 유효합니다. 오류는 기본 파일 시스템에서 나오고 슬래시는 항상 Windows에서 잘 작동합니다. – BalusC

관련 문제