ファイル区切り文字
日本語 | 書類区切り文字 |
英語 | file separator |
ふりがな | ふぁいるくぎりもじ |
フリガナ | ファイルクギリモジ |
「パス」において、ファイルとディレクトリを切り分ける文字。
「ディレクトリAAAにファイルb.txtが入っている」ということをパスで表現する場合、「AAA/b.txt」もしくは「AAA\b.txt」と記述する。
この「/」や「\」が「ファイル区切り文字」である。
ファイル区切り文字はOSやプラットフォームによって異なる。
「/」は主にUNIX系で使用される。
「\」は主にWindows系で使用される。
改行文字の取得は、システムプロパティの「file.separator」で取得できる。SystemクラスのgetProperty()メソッドに"file.separator"を指定することで、実行時のOSでの、標準ファイル区切り文字が文字列として返される。
また、この文字はFileクラスのseparatorフィールド及びseparatorCharフィールドにも格納されているため、これらを使用してもよい。
Fileクラスで使用する場合には、それぞれのOSで使用されているファイル区切り文字を用いることが望ましい。
Fileクラスに異なるOSのファイル区切り文字を使用すると、うまくいったりうまくいかなかったりと実装依存となる。たとえばWindowsでは「\」「/」両方使用できるが、UNIX系では「/」のみである。
また、相対パスや絶対パスを取得した際に返されるパスには、実行時のOSで使用されるファイル区切り文字が用いられる。
これらの問題による不具合を避けるためにも、ファイルの操作は文字列的に行わず、Fileクラスを用いて行うことが望ましい。パスの連結はコンストラクタで、親ディレクトリの取得はgetParentFile()メソッドで取得できる。
どうしても文字列として処理する必要がある場合には、システムプロパティ等からファイル区切り文字を取得し、それを使用した方がいいだろう。
プログラムではない場合、たとえばツールの設定に使用する場合には、どちらかのみ使用可能、もしくはOSに依存する場合もあるため注意すること。
「ディレクトリAAAにファイルb.txtが入っている」ということをパスで表現する場合、「AAA/b.txt」もしくは「AAA\b.txt」と記述する。
この「/」や「\」が「ファイル区切り文字」である。
ファイル区切り文字はOSやプラットフォームによって異なる。
「/」は主にUNIX系で使用される。
「\」は主にWindows系で使用される。
改行文字の取得は、システムプロパティの「file.separator」で取得できる。SystemクラスのgetProperty()メソッドに"file.separator"を指定することで、実行時のOSでの、標準ファイル区切り文字が文字列として返される。
また、この文字はFileクラスのseparatorフィールド及びseparatorCharフィールドにも格納されているため、これらを使用してもよい。
Fileクラスで使用する場合には、それぞれのOSで使用されているファイル区切り文字を用いることが望ましい。
Fileクラスに異なるOSのファイル区切り文字を使用すると、うまくいったりうまくいかなかったりと実装依存となる。たとえばWindowsでは「\」「/」両方使用できるが、UNIX系では「/」のみである。
また、相対パスや絶対パスを取得した際に返されるパスには、実行時のOSで使用されるファイル区切り文字が用いられる。
これらの問題による不具合を避けるためにも、ファイルの操作は文字列的に行わず、Fileクラスを用いて行うことが望ましい。パスの連結はコンストラクタで、親ディレクトリの取得はgetParentFile()メソッドで取得できる。
どうしても文字列として処理する必要がある場合には、システムプロパティ等からファイル区切り文字を取得し、それを使用した方がいいだろう。
プログラムではない場合、たとえばツールの設定に使用する場合には、どちらかのみ使用可能、もしくはOSに依存する場合もあるため注意すること。
// Sample.java
import java.io.File;
public class Sample
{
public static void main( String[] args )
{
// 絶対パスを取得します。
// 実行時のカレントディレクトリは以下の通りとします。
// Windowsの場合→ D:\Sample\test
// UNIX系の場合 → /Sample/test
// これらのディレクトリの中に「src」というディレクトリが
// あり、それを指定したとします。
File file = new File( "src" );
System.out.println( file.getAbsolutePath() );
// ・Windowsの出力結果
// D:\Sample\test\src
// ・UNIX系の出力結果
// /Sample/test/src
// この絶対パスの、「Sample」「test」「src」といった
// ファイル、ディレクトリを区切る「\」や「/」が
// 「ファイル区切り文字」と呼ばれるものです。
// OS固有の改行文字は、システムプロパティ"file.separator"で
// 取得できます。
String fileSeparator = System.getProperty( "file.separator" );
System.out.println( "file.separator=" + fileSeparator );
// ・Windowsの出力結果
// file.separator=\
// ・UNIX系の出力結果
// file.separator=/
// また、Fileクラスのstaticフィールドであるseparator及び
// separatorCharフィールドでも取得できます。
System.out.println( "File.separator=" + File.separator );
System.out.println( "File.separatorChar=" + File.separatorChar );
// ・Windowsの出力結果
// File.separator=\
// File.separatorChar=\
// ・UNIX系の出力結果
// File.separator=/
// File.separatorChar=/
}
}
import java.io.File;
public class Sample
{
public static void main( String[] args )
{
// 絶対パスを取得します。
// 実行時のカレントディレクトリは以下の通りとします。
// Windowsの場合→ D:\Sample\test
// UNIX系の場合 → /Sample/test
// これらのディレクトリの中に「src」というディレクトリが
// あり、それを指定したとします。
File file = new File( "src" );
System.out.println( file.getAbsolutePath() );
// ・Windowsの出力結果
// D:\Sample\test\src
// ・UNIX系の出力結果
// /Sample/test/src
// この絶対パスの、「Sample」「test」「src」といった
// ファイル、ディレクトリを区切る「\」や「/」が
// 「ファイル区切り文字」と呼ばれるものです。
// OS固有の改行文字は、システムプロパティ"file.separator"で
// 取得できます。
String fileSeparator = System.getProperty( "file.separator" );
System.out.println( "file.separator=" + fileSeparator );
// ・Windowsの出力結果
// file.separator=\
// ・UNIX系の出力結果
// file.separator=/
// また、Fileクラスのstaticフィールドであるseparator及び
// separatorCharフィールドでも取得できます。
System.out.println( "File.separator=" + File.separator );
System.out.println( "File.separatorChar=" + File.separatorChar );
// ・Windowsの出力結果
// File.separator=\
// File.separatorChar=\
// ・UNIX系の出力結果
// File.separator=/
// File.separatorChar=/
}
}
// Sample.java import java.io.File; public class Sample { public static void main( String[] args ) { // 絶対パスを取得します。 // 実行時のカレントディレクトリは以下の通りとします。 // Windowsの場合→ D:\Sample\test // UNIX系の場合 → /Sample/test // これらのディレクトリの中に「src」というディレクトリが // あり、それを指定したとします。 File file = new File( "src" ); System.out.println( file.getAbsolutePath() ); // ・Windowsの出力結果 // D:\Sample\test\src // ・UNIX系の出力結果 // /Sample/test/src // この絶対パスの、「Sample」「test」「src」といった // ファイル、ディレクトリを区切る「\」や「/」が // 「ファイル区切り文字」と呼ばれるものです。 // OS固有の改行文字は、システムプロパティ"file.separator"で // 取得できます。 String fileSeparator = System.getProperty( "file.separator" ); System.out.println( "file.separator=" + fileSeparator ); // ・Windowsの出力結果 // file.separator=\ // ・UNIX系の出力結果 // file.separator=/ // また、Fileクラスのstaticフィールドであるseparator及び // separatorCharフィールドでも取得できます。 System.out.println( "File.separator=" + File.separator ); System.out.println( "File.separatorChar=" + File.separatorChar ); // ・Windowsの出力結果 // File.separator=\ // File.separatorChar=\ // ・UNIX系の出力結果 // File.separator=/ // File.separatorChar=/ } }