JavaA2Z

KAB-studio > プログラミング > JavaA2Z > カレントディレクトリとは

カレントディレクトリ

日本語 現住所
英語 current directory
ふりがな かれんとでぃれくとり、かれんとでぃれくとりー
フリガナ カレントディレクトリ、カレントディレクトリー

解説

開始時のディレクトリ
Windows等のOSは、アプリケーションの実時に、その実時のディレクトリを「カレントディレクトリ」として記憶する。

アプリケーションは、ファイル操作や入出力時においてファイル名を指定する際、カレントディレクトリからの相対パスで各ファイルにアクセスすることができる。
ファイルの指定にカレントディレクトリと相対パスを用いることで、ディスク内全体のファイル構造が分からなくても、カレントディレクトリ周辺のディレクトリ構成さえ正しければ動作するため、アプリケーションの位置等を移動しやすいというメリットがある。
その反面、カレントディレクトリは変更される可能性があるため、カレントディレクトリから遠いディレクトリを指定する場合には絶対パスを使用した方がいいだろう。
 
Javaの場合、javaコマンドで実した時のカレントディレクトリが、実中のカレントディレクトリとして使用される。
カレントディレクトリは、システムプロパティの「file.separator」で取得できる。
ただし、Javaプログラム中でカレントディレクトリを変更することは基本的に不可能である。特殊な方法を用いればえるが、OSに依存するため避けた方がいいだろう。
 
また、サーブレット等、明確にjavaコマンドを実せずにアプリケーションが開始する場合、カレントディレクトリは環境等に大きく依存する。
この場合、絶対パスを使用するか、リソースバンドルを使用してクラスファイルのあるディレクトリを利用するのがいいだろう。

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.io.File;

public class Sample
{
    public static void main( String[] args )
    {
        // 以下のディレクトリでjavaコマンドを実行したとします。
        // ・Windowsの場合
        // D:\Sample\test
        // ・UNIX系の場合
        // /Sample/test

        // カレントディレクトリの絶対パスを取得します。
        String currentPath = System.getProperty( "user.dir" );
        System.out.println( currentPath );
        // ・Windowsでの実行結果
        // D:\Sample\test
        // ・UNIX系での実行結果
        // /Sample/test

        // カレントディレクトリのファイル一覧を取得します。
        File dir = new File( currentPath );
        String[] filenames = dir.list();
        forint iF1 = 0; iF1 < filenames.length; ++iF1  )
        {
            System.out.println( filenames[iF1] );
        }
        // .classpath
        // .project
        // bin
        // src
        // (注:上記は一例です。環境によって変化します。)

        // カレントディレクトリの移動はできません。
        // 相対パスで表現しましょう。

        // カレントディレクトリにあるsrcディレクトリ内の
        // ファイル一覧を取得します。
        File srcDir = new File( "src" );
        String[] srcFilenames = srcDir.list();
        forint iF1 = 0; iF1 < srcFilenames.length; ++iF1  )
        {
            System.out.println( srcFilenames[iF1] );
        }
        // Sample.java
        // (注:上記は一例です。環境によって変化します。)
        // このように、相対パスで直接していすれば、それは
        // カレントディレクトリからの相対パスとみなされます。
    }
}
// Sample.java
import java.io.File;

public class Sample
{
    public static void main( String[] args )
    {
        // 以下のディレクトリでjavaコマンドを実行したとします。
        // ・Windowsの場合
        // D:\Sample\test
        // ・UNIX系の場合
        // /Sample/test

        // カレントディレクトリの絶対パスを取得します。
        String currentPath = System.getProperty( "user.dir" );
        System.out.println( currentPath );
        // ・Windowsでの実行結果
        // D:\Sample\test
        // ・UNIX系での実行結果
        // /Sample/test

        // カレントディレクトリのファイル一覧を取得します。
        File dir = new File( currentPath );
        String[] filenames = dir.list();
        for( int iF1 = 0; iF1 < filenames.length; ++iF1  )
        {
            System.out.println( filenames[iF1] );
        }
        // .classpath
        // .project
        // bin
        // src
        // (注:上記は一例です。環境によって変化します。)

        // カレントディレクトリの移動はできません。
        // 相対パスで表現しましょう。

        // カレントディレクトリにあるsrcディレクトリ内の
        // ファイル一覧を取得します。
        File srcDir = new File( "src" );
        String[] srcFilenames = srcDir.list();
        for( int iF1 = 0; iF1 < srcFilenames.length; ++iF1  )
        {
            System.out.println( srcFilenames[iF1] );
        }
        // Sample.java
        // (注:上記は一例です。環境によって変化します。)
        // このように、相対パスで直接していすれば、それは
        // カレントディレクトリからの相対パスとみなされます。
    }
}

この単語を含むページ

「みだし」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2010/02/21
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。