絶対パス
日本語 | 絶対経路 |
英語 | absolute path |
ふりがな | ぜったいぱす |
フリガナ | ゼッタイパス |
ルートを基準として書かれたパス。「フルパス」とも言う。
ルート、つまり全てのディレクトリの大元からの経路が書かれたパス。
UNIX系の場合、ルートは「/」のため、「/etc/file」のように一番最初の文字が「/」となっている文字列が絶対パスとなる。
Windowsの場合、ルートは各ディスクドライブになるため「D:\Sample\file.txt」のように一番目の文字がドライブレター、二番目の文字が「:」、三番目の文字が「\」もしくは「/」の文字列が絶対パスとなる。
絶対パスは「一番大元からの経路」であり、出発点が明確のため、基準となるディレクトリに左右されずファイルやディレクトリを指定できる。そのため、実行環境に依存しないというメリットがあるが、逆に各コンピューターのディレクトリ構成に左右されるため、「実行ファイルのあるディレクトリ下のファイルやディレクトリ」を指し示す場合には不向きな場合もある。
Javaの場合、絶対パスは主にFileクラスのコンストラクタに渡して指定する。
絶対パスか相対パスかどうかは上記の判断を行って自動的に決定される。
Fileが格納する文字列が絶対パスか相対パスかはFileクラスのisAbsolute()メソッドで取得できる。
絶対パス、もしくはカレントディレクトリと相対パスの組み合わせから絶対パスを取得する場合にはgetAbsoluteFile()メソッドもしくはgetAbsolutePath()メソッドを使用する。前者はFileクラスを、後者はStringクラスを返す。
ルート、つまり全てのディレクトリの大元からの経路が書かれたパス。
UNIX系の場合、ルートは「/」のため、「/etc/file」のように一番最初の文字が「/」となっている文字列が絶対パスとなる。
Windowsの場合、ルートは各ディスクドライブになるため「D:\Sample\file.txt」のように一番目の文字がドライブレター、二番目の文字が「:」、三番目の文字が「\」もしくは「/」の文字列が絶対パスとなる。
絶対パスは「一番大元からの経路」であり、出発点が明確のため、基準となるディレクトリに左右されずファイルやディレクトリを指定できる。そのため、実行環境に依存しないというメリットがあるが、逆に各コンピューターのディレクトリ構成に左右されるため、「実行ファイルのあるディレクトリ下のファイルやディレクトリ」を指し示す場合には不向きな場合もある。
Javaの場合、絶対パスは主にFileクラスのコンストラクタに渡して指定する。
絶対パスか相対パスかどうかは上記の判断を行って自動的に決定される。
Fileが格納する文字列が絶対パスか相対パスかはFileクラスのisAbsolute()メソッドで取得できる。
絶対パス、もしくはカレントディレクトリと相対パスの組み合わせから絶対パスを取得する場合にはgetAbsoluteFile()メソッドもしくはgetAbsolutePath()メソッドを使用する。前者はFileクラスを、後者はStringクラスを返す。
参考サイト
// Sample.java
import java.io.File;
public class Sample
{
public static void main( String[] args )
{
// ファイルを絶対パスで指定します。
// このSample.javaが
// D:\Sample\src\Sample.java
// にある場合(Windowsの場合です。UNIX系は"/Sample/src/Sample.java"みたいに)。
File file = new File( "D:/Sample/src/Sample.java" );
// このファイルの絶対パスを取得します。
System.out.println( file.getAbsolutePath() );
// D:\Sample\src\Sample.java
// カレントディレクトリの絶対パスはgetAbsoluteFile()メソッドと
// getParent()メソッドを使用することで取得できます。
System.out.println( new File( "." ).getAbsoluteFile().getParent() );
// D:\Sample
// 注:上記のパスは、プロジェクトがどのディレクトリにあるかによって変わります。
// でも、必ずしもちゃんとパスの解決をしてくれるわけではありません。
System.out.println( new File( "./Sample.java" ).getAbsoluteFile() );
// D:\Sample\.\Sample.java
// 渡されたパスが絶対パスか相対パスかはisAbsolute()メソッドで取得できます。
System.out.println( new File( "D:/Sample/src/Sample.java" ).isAbsolute() );
System.out.println( new File( "Sample.java" ).isAbsolute() );
// true
// false
}
}
import java.io.File;
public class Sample
{
public static void main( String[] args )
{
// ファイルを絶対パスで指定します。
// このSample.javaが
// D:\Sample\src\Sample.java
// にある場合(Windowsの場合です。UNIX系は"/Sample/src/Sample.java"みたいに)。
File file = new File( "D:/Sample/src/Sample.java" );
// このファイルの絶対パスを取得します。
System.out.println( file.getAbsolutePath() );
// D:\Sample\src\Sample.java
// カレントディレクトリの絶対パスはgetAbsoluteFile()メソッドと
// getParent()メソッドを使用することで取得できます。
System.out.println( new File( "." ).getAbsoluteFile().getParent() );
// D:\Sample
// 注:上記のパスは、プロジェクトがどのディレクトリにあるかによって変わります。
// でも、必ずしもちゃんとパスの解決をしてくれるわけではありません。
System.out.println( new File( "./Sample.java" ).getAbsoluteFile() );
// D:\Sample\.\Sample.java
// 渡されたパスが絶対パスか相対パスかはisAbsolute()メソッドで取得できます。
System.out.println( new File( "D:/Sample/src/Sample.java" ).isAbsolute() );
System.out.println( new File( "Sample.java" ).isAbsolute() );
// true
// false
}
}
// Sample.java import java.io.File; public class Sample { public static void main( String[] args ) { // ファイルを絶対パスで指定します。 // このSample.javaが // D:\Sample\src\Sample.java // にある場合(Windowsの場合です。UNIX系は"/Sample/src/Sample.java"みたいに)。 File file = new File( "D:/Sample/src/Sample.java" ); // このファイルの絶対パスを取得します。 System.out.println( file.getAbsolutePath() ); // D:\Sample\src\Sample.java // カレントディレクトリの絶対パスはgetAbsoluteFile()メソッドと // getParent()メソッドを使用することで取得できます。 System.out.println( new File( "." ).getAbsoluteFile().getParent() ); // D:\Sample // 注:上記のパスは、プロジェクトがどのディレクトリにあるかによって変わります。 // でも、必ずしもちゃんとパスの解決をしてくれるわけではありません。 System.out.println( new File( "./Sample.java" ).getAbsoluteFile() ); // D:\Sample\.\Sample.java // 渡されたパスが絶対パスか相対パスかはisAbsolute()メソッドで取得できます。 System.out.println( new File( "D:/Sample/src/Sample.java" ).isAbsolute() ); System.out.println( new File( "Sample.java" ).isAbsolute() ); // true // false } }