Summary:
以下のOSの無効なファイル・フォルダ名と命名規則:
Windows
Mac OS 9
Mac OS X
はじめに:
========================
説明 & 概念
プラットフォーム間でファイル共有する際、エンドユーザが様々なOSの制限を考慮する必要があります。この記事には、ファイル名に入ると問題の原因になれる文字について説明しています。
======================
WINDOWSの規則
Windows OSでは、ファイルシステムとしてFAT(保護モードが有効なファイル・アロケーション・テーブル)またはNTFS(ニュー・テクノロジー・ファイル・システム)が使用できます。NTFSとFATは共通点が多いですが、ファイル・フォルダ名で許可される文字が違う場合があります。特に指定されない限り、以下の規則は両方のファイルシステムに適用されます。例えば、NTFSだけに制限がないものはこのように特別に指定されています:
WindowsでNTFSを使用する場合、この文字はファイル・フォルダ名として無効です:
/ ? < > \ : * | " 及びCtrlキーを押しながら入力するすべての文字
また、WindowsでFATを使用する場合、上記に加えて、キャレット記号( ^ )も許可されません。
WindowsでFATを使用する場合、ファイル・フォルダ名の長さは255桁までです。
WindowsでNTFSを使用する場合、ファイル・フォルダ名の長さは256桁までです。
ファイルシステムに関わらず、Windowsでは完全パスの長さは260桁までです。
上記の無効な文字に加えて、以下のファイル・フォルダ名も許可されません: In addition to these characters, the following conventions are also illegal:
・スペース文字で終わる名
・ピリオド(終止符)で終わる名
また、以下のファイル・フォルダ名がWindowsに予約されていますから、使用できません:
com1, com2, com3, com4, com5, com6, com7, com8, com9, lpt1, lpt2, lpt3, lpt4, lpt5, lpt6, lpt7, lpt8, lpt9, con, nul, and prn
(!)注意点:
それを管理するためのアプリケーションがUnicode APIを使わない限り、上記の規則が適用されます。上記の大分の規則がファイルシステムにサポートされても、OSがサポートされないことがあります。例えば、NTFSファイルシステムでは各コンポーネント(フォルダ、ファイルなど)が桁までである25532,767桁までのパスが許可されます。しかし、それほど長いパスの場合、ExplorerなどのWindowsアプリケーションが正常に動作しない場合があります。ExtremeZ-IPなどのソフトウェアはUnicode APIを使いますから、無効な文字を含むファイル・フォルダ名もNTFSファイルシステムで保管できます。
以下のMacintosh用の規則を参照すると、Macintosh OSではコロン( : )が無効な文字だと分かります。WindowsでNTFSファイルシステムを使用する場合も、コロンは不正な記号だとされています。コロンは、代替データストリームを開くために使われるので、許可されません。しかし、ほかの文字は、Unicodeをサポートしているソフトウェアが使われる場合、 NTFSファイルシステムではオン・オフにできます。ExtremeZ-IPとMassTransitの両方はこのUnicode命名規則をサポートしています。
============================
MACINTOSH OS 9 の規則
Mac OS 9 を使用する場合、許可されない唯一な文字はコロン( : )です。
ファイル・フォルダ名の長さは31桁までです。
============================
MACINTOSH OS X の規則
Mac OS XはUNIX上で動作しているので、継承された予想外の制限がいくつかあります。それで、一部のファイルをOS 9 から OS X へ移動すると、予想外の動作に繋がる場合があります。
Mac OS Х を使用する場合、ファイル・フォルダ名で許可されない唯一な文字はコロン( : )です。
また、ピリオド( . )で始まるファイル・フォルダ名が許可されません。
ファイル・フォルダ名の長さは255桁までです。
=================================
予想外の動作:例
元々のOSで有効なファイル名が違うOSへ移動される場合、予想外の動作に繋がることがあります。以下の例をご参照ください:Below are a few scenarios that show what can happen if file names that are acceptable on one operating system are moved to another:
例1:
Mac OS 9でcom1というファイルがあります。
このファイルはWindowsマシンへ移動されました。
Windows 2000の場合、エクスプローラを使ってこのファイルを含むフォルダを閲覧すると、エクスプローラがクラッシュします。
Windows 2003の場合、このファイルは継承されたアクセス許可を求めるので、ファイル名が変更できなくなります。
例2:
Windowsで.textというファイルがあります。Create a file named .text on Windows
このファイルはMac OS Xマシンへ移動されました。Move the file to a Mac OS X machine
このOSでは、ファイル・フォルダ名がピリオドで始まる場合、このファイル・フォルダは隠しファイル・フォルダになります。それで、.textファイルはファインダーでは表示されません。
例3:
Mac OS Xでfoo/というファイルがあります。
このファイルはWindowsマシンへ移動されました。
このファイルを含むフォルダをエクスプローラで閲覧すると、ファイル名がOS Xマシンで表示された時と違う風に表示されます。