Java - Fileセパレータ(File Separator)

次のように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;

Related Posts

codechachaCopyright ©2019 codechacha