리눅스의 경로 구분자는 /
윈도우는 \
(백슬레시)
예를 들어, 윈도우에서 파일 경로를 지정할때 이런 상황이 많다.
# 리눅스
cd /c/WebStudy/WebDevelement/SpringBoot/memo-test
# 윈도우
cd c:\WebStudy\WebDevelement\SpringBoot\memo-test
이는 \
가 하나이스케이프코드
로 문자열 \
라는 의미를 주는 것이다. => 아래 그림 참고~!
윈도우 경로 표시(\\
)
c:\\WebStudy\\WebDevelement\\SpringBoot\\memo-test
윈도우에서는 리눅스와 다르게 \n
같은, \
백슬레시로 시작하는 이스케이프코드들과 합쳐져 원하지 않는 문자로 탄생하는 경우가 많다. 그래서 조심해야 한다.
말 그대로 탈출한다
라는 뜻인데,
다음과 같은 코드들이 있다.
자바에서는 운영체제별로 갖고있는 구분자를 제공해준다.
구분자 변수 자체를 사용하여 유동적인 프로그램 제작이 가능하게 할 수 있다.
이 구분자는 기본으로 제공되는 System 클래스
에 들어있다. 아래와 같이 접근한다.
System.getProperty("path.separator"); //패스 구분자
System.getProperty("file.separator"); //파일 구분자.
OR
아니면 아예 File 객체에 속성으로 File.separator
을 사용하면 된다!
private final static String UPLOAD_DIRECTORY = "upload";
....
String path = request.getSession().getServletContext().getRealPath("resources");
// C:\WebStudy\Study\ebrainSoft\board_mybatis\src\main\webapp\resources
String root = path + File.separator + UPLOAD_DIRECTORY;