web-dev-qa-db-ja.com

スラッシュまたはバックスラッシュ?

私のプログラムとは別のディレクトリに(それぞれ)テキストファイルを読み書きしたいと考えています。書き込みまたは読み取りを行うディレクトリを指定する場合、ファイルパスの識別にスラッシュまたはバックスラッシュを使用する必要がありますか?

16
Patriot524

スラッシュを使用すると、システムに依存しなくなります。簡単にするために、これに固執します。

Java.io.File.separator ユーザーへのパスを表示する場合。それらのWindowsユーザーを驚かしたくないでしょう。彼らはびくびくしています。

29
Paul Draper

どちらでも使用できます。

_/_を使用する場合、スラッシュは1つだけ必要です。
_\_を使用する場合は、_\\_を使用する必要があります。つまり、それをエスケープする必要があります。

_Java.nio.Path_クラスのresolve()メソッドを使用して、既存のパスにディレクトリ/ファイルを追加することもできます。これにより、スラッシュやバックスラッシュを使用する手間が省けます。次に、toAbsolutePath()メソッドを呼び出し、その後にtoString()を呼び出すことで、絶対パスを取得できます。

SSCCE:

_import Java.nio.file.Path;
import Java.nio.file.Paths;

public class PathSeperator {
    public static void main(String[] args) {
        // the path seperator for this system
        String pathSep = System.getProperty("path.separator");

        // my home directory
        Path homeDir = Paths.get(System.getProperty("user.home"));

        // lets print them
        System.out.println("Path Sep: " + pathSep);
        System.out.println(homeDir.toAbsolutePath());

        // as it turns out, on my linux it is a colon
        // and Java is using forward slash internally
        // lets add some more directories to the user.home

        homeDir = homeDir.resolve("Eclipse").resolve("configuration");
        System.out.println("Appending more directories using resolve()");
        System.out.println(homeDir);

    }
}  
_
4
Little Child

/を使用する必要があります

たとえば、C:/ User/...

0
Ryan