본문으로 바로가기

[JAVA] File 구분자 (File Separator)

category Program/JAVA 2022. 3. 24. 17:06

다음과 같이 OS마다 파일 패스에서 사용하는 파일 구분자가 다릅니다. Windows에서는 \를 구분자로 사용하지만 Linux는 /를 구분자로 사용합니다.

Windows : "C:\Windows\System32\drivers\e"

Linux : "/home/account/Desktop"

이런 구분자를 사용하면, 2개 이상의 OS에서 동작하는 프로그램의 경우 문제가 될 수 있습니다.

프로그램이 실행되는 OS에 맞는 Separator를 동적으로 가져와 사용하도록 구현이 되어야 합니다.

File.separator

File.separator는 프로그램이 실행 중인 OS에 해당하는 구분자를 리턴합니다.

File file = new File("/tmp/" + File.separator + "text.txt");

System.out.println(file.toPath());

Output:

/tmp/text.txt

System.getProperty("file.separator")

System.getProperty("file.separator")는 프로그램이 실행 중인 OS에 해당하는 구분자를 리턴합니다.

String separator = System.getProperty("file.separator");

File file = new File("/tmp/" + separator + "text.txt");

System.out.println(file.toPath());

Output:

/tmp/text.txt

References

File.java

/**
 * The system-dependent default name-separator character, represented as a
 * string for convenience.  This string contains a single character, namely
 * <code>{@link #separatorChar}</code>.
 */
public static final String separator = "" + separatorChar;

 

출처 : https://codechacha.com/ko/java-file-separator/