import java.io.*;
 
public class FileAbsolutePathTest {
 
  public static void main(String[] args) {
 
    File[] file =
      new File[] {
        new File("C:\\dir"),
        new File("C:\\dir\\"),
        new File("C:\\dir\\file.txt"),
        new File("\\\\dir"),
        new File("dir"),
        new File("dir\\"),
        new File("dir\\file.txt"),
        new File("C:/dir"),
        new File("C:/dir/"),
        new File("C:/dir/file.txt"),
        new File("//dir"),
        new File("dir"),
        new File("dir/"),
        new File("dir/file.txt"),
        };
 
    for (int i = 0; i < file.length; i++) {
      System.out.println(
        file[i].getPath()
          + "\t"
          + "isAbsolute="
          + file[i].isAbsolute());
    }
 
  }
}

Windows2000SP4 & Java 1.4.2_04 による出力結果

C:\dir            isAbsolute=true
C:\dir            isAbsolute=true
C:\dir\file.txt   isAbsolute=true
\\dir             isAbsolute=true
dir               isAbsolute=false
dir               isAbsolute=false
dir\file.txt      isAbsolute=false
C:\dir            isAbsolute=true
C:\dir            isAbsolute=true
C:\dir\file.txt   isAbsolute=true
\\dir             isAbsolute=true
dir               isAbsolute=false
dir               isAbsolute=false
dir\file.txt      isAbsolute=false

File#getPath() で取得する文字列について

  • / は \ へ変換される。
  • ディレクトリ名の最後に\をつけても、最後の\は削除される。

tags: Java zurazure

Posted by NI-Lab. (@nilab)