Skip to content

case-sensitive FS 対応 #1372

Description

@zmatsuo

Windowsではファイルが置いてあるファイルシステム(FS)によっては
大文字/小文字を区別する(区別しないが大文字小文字を保持する)
場合があります。

(参考 wikipeida en Case preservation)

情報取得API(GetVolumeInformationWなど)を使えば
FSの状態知ることができるようです。

すぐに対応しなくても大丈夫だと思いますが、
将来、内部でファイル名の比較を行っている個所では考慮が必要です。(プラグインのファイル名比較 #1286)

Windowsでのファイル名の扱いに注意が必要な個所

  • APIによってはショートファイル名(SFN,8.3ファイル名)を扱う(FindFirstFileW()/FindNextFileW())
  • ファイルシステム(FS)によっては大文字/小文字を区別する/しない
  • ファイルシステム(FS)によっては大文字/小文字を保持するが区別しない
  • パス長に制限を設けないようプログラムしたほうが安全
    • 古いプログラムWindowsでは、パス長はMAX_PATH(260文字)
    • 現代のWindowsでは内部は32K文字までok
    • いまのところ TeraTerm は、マニフェストで長いパス(longPathAware)を有効にはしていません

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions