ファイル名

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

ディレクトリ内のファイル名を示すWindowsコマンドシェルのスクリーンショット
ファイル名リスト。ソフトウェアディスプレイに表示されるコンマとスペース文字を含む長いファイル名。

ファイル名ファイル名が一意に識別するために使用される名前であるコンピュータファイルのディレクトリ構造をファイルシステムが異なれば、ファイル名の長さとファイル名内で許可される文字に異なる制限が課せられます。

ファイル名には、次のコンポーネントの1つ以上を含めることができます。

  • ホスト(またはサーバー)–ファイルを含むネットワークデバイス
  • デバイス(またはドライブ)–ハードウェアデバイスまたはドライブ
  • ディレクトリ(またはパス) -ディレクトリツリー(例えば、/usr/bin\TEMP[USR.LIB.SRC]、など)
  • fileファイルのベース名
  • タイプフォーマットまたは拡張) - (例えば、ファイルのコンテンツタイプを示し.txt.exe.COM、等)
  • バージョン–ファイルのリビジョンまたは世代番号

ファイルを識別するために必要なコンポーネントは、有効なファイル名の構文と形式と同様に、オペレーティングシステムによって異なります。

ファイル名の議論は、用語の標準化の欠如によって複雑になっています。「ファイル名」は、Windows名c:\ directory \ myfile.txtなど、名前全体を意味するために使用される場合がありますコンポーネントを参照するために使用されることもあるため、この場合のファイル名はmyfile.txtになります。場合によっては、拡張子を除外する参照であるため、ファイル名はmyfileになります。

歴史

ファイル名拡張子の区切り文字としてドット(ピリオドまたはピリオド)、および3文字の拡張子の制限は、1970年代に登場しました。それらは、16ビットのRAD50文字エンコード制限に由来する可能性があります。[要出典]

従来、ほとんどのオペレーティングシステムは大文字の英数字のみを含むファイル名をサポートしていましたが、時間が経つにつれて、許可される文字数が増加しました。これにより、異なるファイルシステム間でファイルを移動するときに互換性の問題が発生しました。[1]

1985年、RFC 959は、ファイルを識別するためにユーザーがファイルシステムに入力する必要のある文字列としてパス名正式に定義しました。[2]

1995年頃、MS-DOSFATファイルシステムの拡張機能であるVFATWindows95およびWindowsNTに導入されました従来の「8.3」名に加えて、大文字と小文字が混在するUnicodeの 長いファイル名(LFN)を使用できました。

参照:絶対対相対

絶対参照には、すべてのディレクトリレベルが含まれます。一部のシステムでは、完全なディレクトリパスを含まないファイル名参照は、デフォルトで現在の作業ディレクトリになります。これは相対的な参照です。プログラム構成ファイルまたはスクリプトで相対参照を使用する利点の1つは、スクリプトまたはプログラムのさまざまなインスタンスがさまざまなファイルを使用できることです。

これにより、一連のファイル名で構成される絶対パスまたは相対パスが作成されます。

ファイルあたりの名前の数

Unixライクなファイルシステムでは、ファイルに複数の名前を付けることができます。従来のUnixスタイルのファイルシステムでは、名前はファイルのiノードまたは同等のものへのハードリンクです。 WindowsはNTFSファイルシステムでハードリンクをサポートし、WindowsXP以降のバージョンでそれらを作成するためのコマンドを提供します。[3] [4]ハードリンクは、WindowsショートカットクラシックMac OS / macOSエイリアス、またはシンボリックリンクとは異なります。導入LFNsVFATはファイル名のエイリアスを可能にしました。例えば、fsutilmklink longfi~1.???long file name.???古いプログラムの8.3の制限に準拠する方法として、最大8文字と3文字のファイル名エイリアスが「」でした。

このプロパティは、最初に2番目のファイル名を作成し、次に最初のファイル名のみを削除するmoveコマンドアルゴリズムによって使用されました。

他のファイルシステムは、設計上、ファイルごとに1つのファイル名のみを提供します。これにより、1つのファイル名のファイルを変更しても、他のファイル名のファイルは変更されません。

長さの制限

一部のファイルシステムでは、ファイル名の長さが制限されています。場合によっては、IBM S / 370の44文字のように、これらの長さがファイル名全体に適用されます。[5]その他の場合、長さの制限は、ディレクトリ内のファイルの名前やディレクトリ名など、ファイル名の特定の部分に適用される場合があります。例えば、図9(例えば、8ビットのFATにおけるスタンドアロンディスクBASIC)、11(例えばFAT12FAT16FAT32 DOSで)、14(例えば、初期のUnix)、21(Human68K)、31、30(例えば、アップルDOS 3.2および3.3)、15(Apple ProDOSなど)、44(IBM S / 370など)、[5]または255(たとえば、初期のBerkeley Unix)文字またはバイト。多くの場合、長さの制限は、ファイルシステム内の固定スペースを名前のコンポーネントの格納に割り当てることで発生します。そのため、制限を増やすには、互換性のない変更が必要になるだけでなく、より多くのスペースを予約する必要があります。

ネストされたディレクトリに情報を格納するファイルシステムの特定の問題は、長さのチェックが名前全体ではなく名前の個々の部分にのみ適用される可能性があるため、実装制限を超える完全なパス名でファイルを作成できる可能性があることです。多くのWindowsアプリケーションはMAX_PATH260の値に制限されていますが、Windowsファイル名はこの制限を簡単に超える可能性があります[2]以下からのWindows 10、バージョン1607、MAX_PATHの制限が削除されました。[6]

ファイル名拡張子

FATNTFS、およびVMSシステムを含む多くのファイルシステムは、ファイル名拡張子として、ファイル名の最後のピリオドに続く1つ以上の文字で構成されるファイル名の部分を考慮し、ファイル名をベース名またはステムの2つの部分に分割します。そして延長または接尾辞を示すために、いくつかのアプリケーションで使用されるファイルの種類をアプリケーションによって作成された複数の出力ファイルは、同じベース名とさまざまな拡張子を使用します。たとえば、コンパイラーはFOR、ソース入力ファイル(Fortranコードの場合)、OBJオブジェクト出力、およびLSTリストのために。いくつかの一般的な拡張子がありますが、それらは任意であり、別のアプリケーションがとを使用する場合がRELありRPTます。拡張機能は、少なくとも歴史的に一部のシステムでは3文字の長さに制限されてきましたが、一般に、たとえば、任意の長さにすることができますhtml

エンコーディングの相互運用性

ファイル名の一般的なエンコーディング標準はありません。

ネットワークファイル転送、ファイルシステムストレージ、バックアップおよびファイル同期ソフトウェア、構成管理、データ圧縮およびアーカイブなどのために、ソフトウェア環境間でファイル名を交換する必要があります。したがって、アプリケーション間でファイル名情報を失わないことが非常に重要です。これにより、ファイル名をエンコードするための標準としてUnicodeが広く採用されるようになりましたが、レガシーソフトウェアはUnicodeに対応していない可能性があります。

エンコーディング表示の相互運用性

従来、ファイル名は、ファイルシステムで安全である限り、ファイル名に任意の文字を使用できました。[1]これにより、任意のエンコーディングの使用が可能になり、したがって任意のローカルシステムでの任意のローカルテキストの表現が可能になりましたが、多くの相互運用性の問題が発生しました。

ファイル名は、1つの国内の異なるシステムに異なるバイト文字列を使用して格納できます。たとえば、1つが日本のShiftJISエンコーディングと別の日本のEUCエンコーディングを使用した場合などです。ほとんどのシステムは、拡張ファイル情報の一部としてファイル名に使用されるエンコーディングの説明を公開していなかったため、変換は不可能でした。これにより、ファイルにアクセスするたびに、コストのかかるファイル名エンコーディングの推測が強制されました。[1]

解決策は、ファイル名のエンコーディングとしてUnicodeを採用することでした。

ただし、従来のMac OSでは、ファイル名のエンコーディングはファイル名属性とともに保存されていました。[1]

Unicodeの相互運用性

Unicode標準は、エンコーディング決定の問題を解決します。

それにもかかわらず、正規化(同等性)や使用中のUnicodeバージョンなど、いくつかの制限された相互運用性の問題が残っています。たとえば、UDFはUnicode2.0に制限されています。macOSのHFS +ファイルシステムはNFDUnicode正規化を適用し、オプションで大文字と小文字を区別します(デフォルトでは大文字と小文字を区別しません)。ファイル名の最大長は標準ではなく、コード単位のサイズによって異なる場合があります。これは深刻な問題ですが、ほとんどの場合、これは限られた問題です。[1]

Linuxでは、これはファイル名がファイルを開くのに十分でないことを意味します。さらに、ストレージデバイス上のファイル名の正確なバイト表現が必要です。これは、いくつかのトリッキーな正規化呼び出しを使用して、アプリケーションレベルで解決できます。[7]

Unicodeの等価性の問題は、「正規化された名前の衝突」として知られています。解決策は、SubversionおよびApacheの技術コミュニティで使用されている非正規化Unicode構成認識です。[8]このソリューションは、リポジトリ内のパスを正規化しません。パスは、比較の目的でのみ正規化されます。それにもかかわらず、一部のコミュニティはこの戦略の特許を取得しており、他のコミュニティによる使用を禁じています。[説明が必要]

展望

相互運用性の問題を制限するために、Sunが説明するいくつかのアイデアは次のとおりです。

  • 1つのUnicodeエンコーディング(UTF-8など)を使用する
  • ファイル名に対して透過的なコード変換を行う
  • 正規化されたファイル名を保存しない
  • 同じディレクトリ内の2つの標準的に同等のファイル名を回避するために、ファイル名間の標準的な同等性を確認してください。[1]

これらの考慮事項により、UTF-8とは異なる将来のエンコーディングに切り替えることができないという制限が生じます。

Unicode移行

1つの問題はUnicodeへの移行でした。この目的のために、いくつかのソフトウェア会社がファイル名を新しいUnicodeエンコーディングに移行するためのソフトウェアを提供しました。

  • マイクロソフトは、VFATテクノロジ全体でユーザーに透過的な移行を提供しました
  • Appleは「ファイル名エンコーディング修復ユーティリティv1.0」を提供しました。[9]
  • Linuxコミュニティは「convmv」を提供しました[10]

Mac OS X 10.3は、AppleがUnicode 3.2文字分解を採用したことを示し、以前に使用されていたUnicode2.1分解に取って代わりました。この変更により、Mac OSX用のソフトウェアを作成する開発者に問題が発生しました。[11]

独自性

単一のディレクトリ内で、ファイル名は一意である必要があります。ファイル名の構文はディレクトリにも適用されるため、単一のディレクトリに同じ名前のファイルとディレクトリエントリを作成することはできません。異なるディレクトリにある複数のファイルが同じ名前を持つ場合があります。

一意性のアプローチは、大文字と小文字の区別と、NFC、NFDなどUnicode正規化形式の両方で異なる場合がありますつまり、L "\ x00C0.txt"(UTF-16、NFC)(ラテン語の大文字のAと墓)やL "\ x0041など、同じテキストファイル名とファイル名の異なるバイト実装で2つの別々のファイルが作成される可能性があります。 \ x0300.txt "(UTF-16、NFD)(ラテン語の大文字A、重大な組み合わせ)。[12]

大文字小文字の保存

以下のようないくつかのファイルシステム、FATにかかわらず大文字など、店舗のファイル名の文字の場合、それらを作成するために使用されます。たとえば、「MyName.Txt」または「myname.txt」という名前で作成されたファイルは、「MYNAME.TXT」というファイル名で保存されます。大文字と小文字のバリエーションを使用して、同じファイルを参照できます。ファイル・システムのこれらの種類は、と呼ばれ、大文字と小文字を区別しないとされない場合、保存します。一部のファイルシステムでは、ファイル名に小文字を使用することを完全に禁止しています。

一部のファイルシステムは、ファイル名を最初に作成された形式で保存します。これらは、ケース保持またはケース保存と呼ばれます。このようなファイルシステムでは、大文字と小文字が区別される場合と区別されない場合があります。大文字と小文字が区別される場合、「MyName.Txt」と「myname.txt」は同じディレクトリ内の2つの異なるファイルを参照する場合があり、各ファイルは、名前が付けられた正確な大文字で参照する必要があります。一方、大文字と小文字を区別せず、大文字と小文字を区別しないファイルシステムでは、「MyName.Txt」、「myname.txt」、「Myname.TXT」のいずれか1つだけが、与えられた時間、およびこれらの名前のいずれかを持つファイルは、名前の任意の大文字で参照できます。

当初から、Unixとその派生システムは大文字と小文字を区別していました。ただし、すべてのUnixライクなファイルシステムで大文字と小文字が区別されるわけではありません。デフォルトでは、HFS +のMacOSは、大文字と小文字を区別しないで、SMBのサーバは通常、大文字と小文字を区別しない動作を提供します(基本となるファイルシステムは大文字と小文字が区別される場合でも、例えばSambaのほとんどのUnixライクなシステム上)、およびSMBクライアント・ファイル・システム大文字を提供大文字と小文字を区別しない動作。ファイルシステムの大文字と小文字の区別は、このようなSambaとのようなソフトウェアのためのかなりの挑戦であるワイン異なっており、それらを同じに扱うシステムと同様に扱う大文字と小文字のファイルという両方のシステムと効率的に相互運用する必要があります。[13]

予約文字と単語

ファイルシステムは、ファイル名を構成するために常に同じ文字セットを提供しているわけではありません。Unicodeが事実上の標準になる前は、ファイルシステムは主にロケールに依存する文字セットを使用していました。対照的に、一部の新しいシステムでは、ファイル名をUnicodeレパートリーのほぼすべての文字、さらには一部の非Unicodeバイトシーケンスで構成することができます。ファイルシステム、オペレーティングシステム、アプリケーション、または他のシステムとの相互運用性の要件によって制限が課される場合があります。

多くのファイルシステムユーティリティは、ファイル名に制御文字を表示することを禁止しています。Unixライクなファイルシステムでは、ヌル文字[14]およびパス区切り文字/は禁止されています。

Windowsの場合

さまざまなシステムでのファイルシステムユーティリティと命名規則により、特定の文字がファイル名に表示されたり、問題が発生したりすることが禁止されています。[15]

キャラクター 名前 禁止の理由
/ スラッシュ Unixライク、Windows、およびAmigaシステムでパス名コンポーネントの区切り文字として使用されます。SwitChar設定が '/'に設定されている限り、DOS COMMAND.COMシェルはそれをスイッチ文字として使用しますが、DOSとWindows自体は常にAPIレベルの区切り文字として受け入れます。)
大きなスラッシュ⧸UnicodeコードポイントU + 29F8)は、Windowsファイル名で許可されています。
\ バックスラッシュ DOS、OS / 2、およびWindowsでデフォルトのパス名コンポーネント区切り文字として使用されます(SwitCharが「-」に設定されている場合でも。Unixファイル名で使用できます注1を参照してください)。
大きな逆スラッシュ⧹(U + 29F9)は、Windowsファイル名で許可されています。
? 疑問符 Unix、Windows、AmigaOSでワイルドカードとして使用されます。単一の文字をマークします。Unixファイル名で許可されています注1を参照してください声門閉鎖音ʔ(U + 0294)、インテロバング(U + 203D)は、逆疑問符¿(U + 00BF)と、二重疑問符(U + 2047)は、すべてのファイル名に許可されています。
% パーセント RT-11でワイルドカードとして使用されます。単一の文字をマークします。Windowsでは特別ではありません。
* アスタリスク
またはスター
Unix、DOS、RT-11、VMS、およびWindowsでワイルドカードとして使用されます。ベース名や拡張子のいずれかでマークの文字の任意のシーケンス(Unixでは、Windowsの、DOS)、または任意の文字列(したがって、「*。*」DOSでの手段「のすべてのファイル」。Unixのファイル名に許可を参照してください注1
を参照してくださいスター( glyph)ファイル名で許可されている多くのアスタリスクのような文字。
: 結腸 Windowsのマウントポイント/ドライブを決定するために使用されます。仮想デバイスまたはAmigaOS、RT-11、VMSのドライブなどの物理デバイスを決定するために使用されます。従来のMacOSでパス名の区切り文字として使用されます。VMSの名前の後に二重になっている場合は、DECnetノード名(「\\」が前に付いたNetBIOS(Windowsネットワーク)ホスト名に相当)を示します。コロンは、Windowsでメインファイルから代替データストリームを分離するためにも使用されます。文字コロン(U + A789)との比記号(U + 2236)は、Windowsのファイル名で許可されています。Segoe UIの中で使用されるフォント、Windowsのエクスプローラグリフ
コロンと文字コロンは同じです。
| 垂直バー
またはパイプ
Unix、DOS、およびWindowsでのソフトウェアパイプライン指定します。Unixファイル名で許可されています注1を参照してください歯科クリック |(U + 01C0)は、Windowsのファイル名に許可されています。
" ストレート二重引用符 一重引用符'(U + 0027)と'(U + 2019)、および曲線二重引用符(U + 201C)と(U + 201D)は、ファイル名のどこでも使用できます。注1を参照してください
< 未満 入力リダイレクトするために使用され、Unixファイル名で許可されます注1を参照してください
> より大きい 出力リダイレクトするために使用され、Unixファイル名で許可されます注1を参照してください
. ピリオド
またはドット
Windowsでは、フォルダ名をピリオドで終わらせることはできませんが、ピリオドの後に改行なしスペースなどの空白文字を続けることはできます他の場所では、ピリオドは許可されますが、最後に出現するのは、VMS、DOS、およびWindowsの拡張子区切り文字であると解釈されます。他のOSでは、通常はファイル名の一部と見なされ、複数のピリオド(ピリオド)が許可される場合があります。Unixでは、先頭のピリオドは、ファイルまたはフォルダが通常非表示になっていることを意味します。
, コンマ 許可されますが、DOSおよびWindowsではコマンドラインインタープリターCOMMAND.COMおよびCMD.EXEによって区切り文字として扱われます。
; セミコロン 許可されますが、DOSおよびWindowsではコマンドラインインタープリターCOMMAND.COMおよびCMD.EXEによって区切り文字として扱われます。
= 等号 許可されますが、DOSおよびWindowsではコマンドラインインタープリターCOMMAND.COMおよびCMD.EXEによって区切り文字として扱われます。
スペース
許可されますが、スペースはコマンドラインアプリケーションのパラメーター区切り文字としても使用されます。これは、ファイル名全体を引用することで解決できます。

注1:Unixのファイル名とフォルダー名で使用できますが、ほとんどのUnixシェルでは、スペース、<、>、|、\、場合によっては:、(、)、&、;、#などの特定の文字とワイルドカードが必要です。そのような ?および*、引用またはエスケープする

five\ and\ six\<seven(エスケープの
'five and six<seven'または"five and six<seven"(引用の例)

文字å0xE5)は、86-DOSおよびMS-DOS / PC DOS 1.x-2.xではファイル名の最初の文字として使用できませんでしたが、それ以降のバージョンでは使用できます。

Windowsユーティリティでは、スペースとピリオドをファイル名の最後の文字として使用することはできません。[16]ピリオドは最初の文字として許可されますが、Windowsエクスプローラーなどの一部のWindowsアプリケーションでは、そのようなファイルの作成または名前の変更が禁止されています(Unixライクなシステムで隠しファイルとディレクトリを記述するためにこの規則が使用されているにもかかわらず)。回避策には、ファイルの名前を変更するときにドットを追加する(後で自動的に削除される)、代替ファイルマネージャーを使用する、コマンドラインを使用してファイルを作成する、またはアプリケーション内から目的のファイル名でファイルを保存するなどがあります。[17]

特定のオペレーティングシステム上の一部のファイルシステム(特に、元々他のオペレーティングシステムに実装されていたファイルシステム)、およびそのオペレーティングシステム上の特定のアプリケーションは、さらに制限と解釈を適用する場合があります。制限の詳細については、ファイルシステムの比較を参照してください

Unixライクなシステム、DOS、およびWindowsでは、ファイル名は「。」です。および「..」には特別な意味があります(それぞれ現在のディレクトリと親ディレクトリ)。Windows 95/98 / MEは、「...」、「....」などの名前を使用して、祖父母または曽祖父母のディレクトリを示します。[18]すべてのWindowsバージョンは、ドットのみで構成されるファイル名の作成を禁止していますが、名前が3つのドット( "...")で構成される場合、Unixでは有効です。

さらに、WindowsおよびDOSユーティリティでは、一部の単語も予約されており、ファイル名として使用できません。[17]たとえば、DOS デバイスファイル[19]

CON、PRN、AUX、CLOCK $、NUL
COM0、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9 [20] 
LPT0、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9 [20] 
LST(86-のみDOSおよびDOS1.xx)
KEYBD $、SCREEN $(マルチタスクMS-DOS 4.0のみ
$ IDLE $(コンカレントDOS 386マルチユーザーDOSおよびDR DOS 5.0以降のみ)
CONFIG $(MS-DOS 7.0-8.0のみ)

これらの制限があるシステムは、他のいくつかのファイルシステムとの非互換性を引き起こします。たとえば、Windowsは、次の正当なUNIXファイル名(aux.c、[21] q "uote" s.txt、またはNUL.txt)の処理に失敗するか、エラーレポートを生成します。

内部で使用されるNTFSファイル名は次のとおりです。

$ Mft、$ MftMirr、$ LogFile、$ Volume、$ AttrDef、$ Bitmap、$ Boot、$ BadClus、$ Secure、
$ Upcase、$ Extend、$ Quota、$ ObjId、および$ Reparse

ファイル名の制限の比較

システム 大文字と
小文字を区別
ケース
保存
許可される文字セット 予約文字 予約語 最大長(文字) コメント
8ビットFAT 7ビットASCII(ただしバイトとして保存) 最初の文字を0x00または0xFFにすることはできません 9 シーケンシャルファイル(拡張子なし)の場合は最大9文字のベース名制限、バイナリファイルの場合は最大6文字と3文字の拡張子。6.3ファイル名を参照
FAT12FAT16FAT32 番号 番号 任意のSBCS / DBCS OEMコードページ 0x00-0x1F 0x7F "* /:<>?\ | + 、。; = [](一部の環境でも:!@; DOS 1/2は最初の文字として0xE5を許可しませんでした) 以下を含むデバイス名: $ IDLE $ AUXCOM1…COM4CONCONFIG $ CLOCK $ KEYBD $ LPT1…LPT4LSTNUL PRN SCREEN $(どこでもAVAILDEVステータスに依存するか、仮想\ DEV \ディレクトリのみ) 11 最大8文字のベース名の制限と3文字の拡張子。8.3ファイル名を参照
VFAT 番号 はい UnicodeUCS-2エンコーディング を使用 0x00-0x1F 0x7F "* /:<>?\ | 255
exFAT 番号 はい UnicodeUTF-16エンコーディング を使用 0x00-0x1F 0x7F "* /:<>?\ | 255
NTFS オプション はい UnicodeUTF-16エンコーディング を使用 0x00-0x1F 0x7F "* /:<>?\ | ルートディレクトリのみ: $ AttrDef $ BadClus $ Bitmap $ Boot $ LogFile $ MFT $ MFTMirr pagefile.sys $ Secure $ UpCase $ Volume $ Extend $ Extend \ $ ObjId $ Extend \ $ Quote $ Extend \ $ Reparse($ Extendはディレクトリ) 255 パスは最大32,000文字です。

名前がPosix名前空間にあるとフラグが付けられていない限り、1〜31(0x01-0x1F)の範囲の文字と文字 "* /:<>?\ |の使用を禁止します。NTFSでは、各パスコンポーネント(ディレクトリまたはファイル名)を次のように指定できます。長さ255文字[疑わしい ]

Windowsは、MS-DOSデバイス名AUX、CLOCK $、COM1、…、COM9、CON、LPT1、…、LPT9、NUL、PRN、およびこれらの名前を任意の拡張子(たとえば、AUX.txt)で使用することを禁止しています。 、長いUNCパスを使用する場合を除きます(例:\\。\ C:\ nul.txtまたは\\?\ D:\ aux \ con)。(拡張子が指定されている場合は、CLOCK $を使用できます。)Win32 APIは、UNCパスが使用されている場合を除き、ファイル名から末尾のピリオド(ピリオド)と先頭および末尾のスペース文字を削除します。これらの制限はWindowsにのみ適用されます。NTFSをサポートするLinuxディストリビューションでは、ファイル名はNTFSのPosix名前空間を使用して記述されます。これにより、/とNULを除くすべてのUnicode文字が許可されます。

OS / 2 HPFS 番号 はい 任意の8ビットセット | \?* <":> / 254
Mac OS HFS 番号 はい 任意の8ビットセット 255 古いバージョンのFinderは31文字に制限されています
Mac OS HFS + オプション はい UnicodeUTF-16エンコーディング を使用 :ディスク上、クラシックMac OS、およびmacOSのCarbonレイヤー。/ macOSのUnixレイヤーで 255 Mac OS 8.1-macOS
ほとんどのUNIXファイルシステム はい はい 任意の8ビットセット / null 255 主要な示していることlsと、ファイルマネージャは、デフォルトでは、ファイルは表示されません
z / OSクラシックMVSファイルシステム(データセット) 番号 番号 EBCDICコードページ $#@-x'C0 '以外 44 最初の文字はアルファベットまたは国別である必要があります($、#、@)

「修飾」には.、8文字以下ごとに含まれます[22] パーティション化されたデータセット(PDSまたはPDSE)は、最大8文字の名前を持つメンバーに分割されます。メンバー名は、PDSの名前の後に括弧で囲まれています。PAYROLL.DEV.CBL(PROG001)

CMSファイルシステム 番号 番号 EBCDICコードページ 8 + 8 ディスク文字(A〜Z)を使用した単一レベルのディレクトリ構造。空白で区切られた最大8文字のファイル名と最大8文字のファイルタイプ。たとえば、ディスクA上のMEMOという名前のTEXTファイルには、「MEMOTEXTA」としてアクセスします。(VMの新しいバージョンでは、階層ファイルシステム構造、SFSおよびBFSが導入されましたが、元のフラットディレクトリの「ミニディスク」構造は依然として広く使用されています。)
初期のUNIXAT&T Corporation はい はい 任意の8ビットセット / 14 主要な「隠し」ファイルを示します
POSIX「完全に移植可能なファイル名」[23] はい はい A–Z a–z 0–9。_- / ヌル 14 ハイフンは最初の文字であってはなりません。適合性をチェックするコマンドラインユーティリティ、「するpathchkは」、IEEE 1003.1標準のとの一部であるOpen Groupの基本仕様[24]
ISO 9660 番号 A–Z 0–9_。 「180に近い」(レベル2)または200(レベル3) CDで使用されます。最大8ディレクトリレベル(レベル2、3ではなくレベル1の場合)
Amiga OFS 番号 はい 任意の8ビットセット : / ヌル 30 オリジナルファイルシステム1985
Amiga FFS 番号 はい 任意の8ビットセット : / ヌル 30 高速ファイルシステム1988
Amiga PFS 番号 はい 任意の8ビットセット : / ヌル 107 プロフェッショナルファイルシステム1993
Amiga SFS 番号 はい 任意の8ビットセット : / ヌル 107 スマートファイルシステム1998
Amiga FFS2 番号 はい 任意の8ビットセット : / ヌル 107 Fast File System 2 2002
BeOS BFS はい はい UnicodeUTF-8エンコーディング を使用 / 255
DEC PDP-11 RT-11 番号 番号 RADIX-50 6 + 3 サブディレクトリのないフラットなファイルシステム。完全な「ファイル仕様」には、デバイス、ファイル名、拡張子(ファイルタイプ)がdev:filnam.extの形式で含まれています。
DEC VAX VMS 番号
v7.2 から
A–Z 0–9 $ -_ コンポーネントごとに32。コンポーネントごとに以前の9。後者の場合、ファイル名は255、拡張子は32です。 完全な「ファイル仕様」には、ノード名、ディスク名、ディレクトリ、ファイル名、拡張子、バージョンが次の形式で含まれます。OURNODE:: MYDISK:[THISDIR.THATDIR] FILENAME.EXTENSION; 2ディレクトリの深さは8レベルのみです。
コモドールDOS はい はい 任意の8ビットセット :、= $ 16 長さはドライブによって異なりますが、通常は16です。
HP 250 はい はい 任意の8ビットセット スペース "、:NULL CHR $(255) 6 ディスクおよびテープドライブは、ラベル(最大8文字)またはユニット仕様のいずれかを使用してアドレス指定されます。HP 250ファイルシステムはディレクトリを使用せず、ファイルタイプを示すために拡張子も使用しません。代わりに、タイプは属性です(たとえば、データファイル、プログラムファイル、バックアップ、およびOS自体のDATA、PROG、BKUP、またはSYST)。[25]

も参照してください

参考文献

  1. ^ a b c d e f デビッド・ロビンソン; Ienup Sung; ニコラスウィリアムズ(2006年3月)。「Solarisプレゼンテーション:ファイルシステム、Unicode、および正規化」 (PDF)サンフランシスコ:Sun.com。2012年7月4日にオリジナル (PDF)からアーカイブされまし
  2. ^ RFC 959 IETF.org RFC 959、ファイル転送プロトコル(FTP)   
  3. ^ 「Fsutilコマンドの説明ページ」Microsoft.com 2013年9月15日取得
  4. ^ 「NTFSハードリンク、ディレクトリジャンクション、およびWindowsショートカット」フレックスヘックスInvSoftworks 2011年3月12日取得
  5. ^ a b "FTPでのDD名のサポート、z / OS V1R11.0 Communications ServerIPユーザーズガイドおよびコマンドz / OS V1R10.0-V1R11.0SC31-8780-09"IBM.com。
  6. ^ [1]
  7. ^ 「アクセント付きのファイル名」ネッドバチェルダー2013年9月17日取得
  8. ^ 「NonNormalizingUnicodeCompositionAwareness-SubversionWiki」Wiki.apache.org。2013年1月21日2013年9月17日取得
  9. ^ 「ファイル名エンコーディング修復ユーティリティv1.0」Support.apple.com。2006年6月1日2018年10月2日取得
  10. ^ "convmv-ファイル名をあるエンコーディングから別のエンコーディングに変換します"J3e.de 2013年9月17日取得
  11. ^ 「Re:MacOSX上のgitおよびutf-8ファイル名が分解されたファイル」KernelTrap。2010年5月7日。2011年3月15日のオリジナルからアーカイブ2010年7月5日取得
  12. ^ 「クロスプラットフォームのファイルパスの命名規則-一般的なプログラミング」GameDev.net 2013年9月17日取得
  13. ^ 「CaseInsensitiveFilenames-公式ワインウィキ」Wiki.winehq.org。2009年11月8日。2010年8月18日のオリジナルからアーカイブ2010年8月20日取得
  14. ^ 「オープングループベース仕様問題6」IEEE Std1003.1-2001オープングループ。2001年。
  15. ^ 「ファイル、パス、および名前空間の命名(Windows)」Msdn.microsoft.com。2013年8月26日2013年9月17日取得
  16. ^ 「Windowsの命名規則」MSDN、Microsoft.com。最後の箇条書きを参照してください。
  17. ^ a b ファイルに名前を 付けるmsdn.microsoft.com(MSDN)、Windowsでのファイル名の制限
  18. ^ ヒントとコツのためのMicrosoftWindows 95 README、Microsoft 2015年8月27日取得
  19. ^ MS-DOSデバイスドライバ名をファイル名として使用することはできません。マイクロソフト
  20. ^ a b ファイル、パス、名前空間の命名Microsoft
  21. ^ Ritter、Gunnar(2007年1月30日)。aux.c「の物語『家宝プロジェクト
  22. ^ "サブパラメーター定義、z / OS V1R11.0 MVSJCLリファレンス"IBM.com 2013年9月17日取得
  23. ^ Lewine、Donald。POSIXプログラマーズガイド:ポータブルUNIXプログラムの作成1991 O'Reilly&Associates、Inc。Sebastopol、CA pp63-64
  24. ^ pathchk-パス名を確認します
  25. ^ Hewlett-Packard Companyカリフォルニア州ローズビル、HP250構文リファレンスRev1 / 84マニュアル部品番号45260-90063

外部リンク