• category: swing folder: DeviceName title: Device Nameのチェック tags: [File, JFileChooser] author: aterai pubdate: 2003-09-08 description: ファイルチューザーなどで入力されたファイル名が、デバイスファイル名(con、prn、nul、auxなど)でないかチェックします。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTKz2LmiiI/AAAAAAAAAWk/HOTsKRHPAVo/s800/DeviceName.png

概要

ファイルチューザーなどで入力されたファイル名が、デバイスファイル名(conprnnulauxなど)でないかチェックします。

サンプルコード

private boolean isCanonicalPath(File file) {
  if (file == null) return false;
  try {
    if (file.getCanonicalPath() == null) {
      return false;
    }
  } catch (IOException ioe) {
    return false;
  }
  return true;
}
View in GitHub: Java, Kotlin

解説

Windows環境で、Device Nameを含むような正しくないファイルパス(c:\con.txtなど)を読み書きしようとすると、Exceptionが発生します。正しいファイルパスかどうかは、File#getCanonicalPath()メソッドがnullを返すかどうかでチェックすることができます。

参考リンク

コメント