次の方法で共有


Windows のファイル名とフォルダー名の空白文字のサポート

この記事では、ファイル名とフォルダー名の空白文字のサポートについて説明します。

元の KB 番号: 2829981

まとめ

ASCII スペース (0x20) で始まるファイル名とフォルダー名は、これらの文字なしで保存されます。 ASCII ピリオド (0x2E) 文字で終わるファイル名とフォルダー名も、この文字なしで保存されます。 その他の末尾または先頭の空白文字はすべて保持されます。

例えば次が挙げられます。

  • 先頭の文字が ASCII スペース (0x20) である場合、ファイルは 'Foo.txt' として保存され、ファイル システムに 'Foo.txt' として保存されます。
  • ファイルが 'Foo.txt' として保存され、末尾の文字が ASCII スペース (0x20) である場合、ファイル は 'Foo.txt' としてファイル システムに保存されます。
  • ファイルが 'として保存されている場合。Foo.txt'。先頭の文字が ASCII ピリオド (0x2E) の場合、ファイル システムに ') として保存されます。Foo.txt'.
  • 末尾の文字が ASCII ピリオド (0x2E) であるファイルが 'Foo.txt.' として保存されている場合、ファイル は 'Foo.txt' としてファイル システムに保存されます。
  • ファイルが 'Foo.txt' として保存され、先頭の文字が表意空間 (0x3000) などの代替空白文字である場合、ファイル システムに 'Foo.txt' として保存されます。 先頭の空白文字は削除されません。
  • ファイルが 'Foo.txt' として保存されている場合、末尾の文字は表意空間 (0x3000) などの代替空白文字であり、ファイル システムに 'Foo.txt' として保存されます。 末尾の空白文字は削除されません。空白文字で始まるファイル名とフォルダー名は、エコシステムの要件により、Win32 API と WinRT API によって異なる方法で列挙されます。

詳細

空白文字

さまざまな "スペース" 幅 (グリフ) を表すさまざまな空白文字があります。 オブジェクト マネージャーによって特別に処理されるのは、ASCII スペース (0x20) 文字と ASCII ピリオド (0x24) 文字のみです。 表意空間文字 (0x3000) も Space キーを使用して生成されますが (IME が有効な場合)、特別に処理されません。

  • 0x0020スペース
  • 0x00A0改行なしスペース
  • 0x1680オガムスペースマーク
  • 0x180Eモンゴル語母音区切り記号
  • 0X2000 EN QUAD
  • 0X2001 EM QUAD
  • 0x2002 EN SPACE
  • 0X2003 EM SPACE
  • 0x2004 3-PER-EM スペース
  • 0x2005 4/EM 空間
  • 0x2006 6/EM 空間
  • 0x2007図スペース
  • 0x2008句読点スペース
  • 0x2009細いスペース
  • 0x200Aヘアスペース
  • ゼロ幅スペースを0x200Bする
  • 0x202F狭い改行なしスペース
  • 0x205F中数値空間
  • IDEOGRAPHIC 空間を0x3000する
  • 0xFEFFゼロ幅の改行なしスペース

オブジェクト マネージャー

ファイル名またはフォルダー名の先頭または末尾にある ASCII スペース (0x20) 文字は、作成時にオブジェクト マネージャーによって削除されます。

ファイル名またはフォルダー名の末尾にある ASCII ピリオド (0x2E) 文字は、作成時にオブジェクト マネージャーによって削除されます。

他のすべての先頭または末尾の空白文字は、オブジェクト マネージャーによって保持されます。

API 列挙型

Win32 API

Win32 API (CreateFileFindFirstFile など) は、ダイレクト メソッドを使用して、ローカルまたはリモートのファイル システム上のファイルとフォルダーを列挙します。 空白文字の包含または場所に関係なく、すべてのファイルとフォルダーを検出できます。

WinRT API

WinRT API は、複数のデータ プロバイダー (物理ドライブ、OneDrive、Facebook など) をサポートするように設計されています。 これを実現するために、WinRT API は検索エンジンを使用してファイルとフォルダーを列挙します。 列挙に対する検索アプローチにより、WinRT API (StorageFileStorageFolder など) は、ローカルまたはリモートのファイル システムに存在する ASCII 領域 (0x20) および ASCII ピリオド (0x2E) 以外の末尾の空白文字を含むファイル名とフォルダー名を処理しません。 先頭の ASCII 以外の空白文字が処理されます。

観察された動作

エクスプローラーおよびデスクトップ アプリケーション

空白文字の包含や場所に関係なく、すべてのファイルとフォルダーがエクスプローラーおよびデスクトップ アプリケーション内に表示されます。

Microsoft Store アプリケーション

ファイル ピッカーを使用する場合、末尾に ASCII 以外の空白文字が含まれるファイルは表示されません。 末尾に ASCII 以外の空白文字が含まれるサブフォルダーの内容は、ファイル ピッカーには表示されません。 先頭に ASCII 以外の空白文字が含まれているファイルまたはフォルダーが表示されます。