web-dev-qa-db-ja.com

WindowsおよびLinuxでの大文字と小文字を区別するファイル拡張子

Linuxでは、ファイルexample.JPGおよびexample.jpgは同じディレクトリにあります。

Windowsでは、大文字と小文字が区別される拡張子がありますが、これら2つのファイルを同じディレクトリに配置することはできません。何故なの?

10
wvdz

Windowsでは、大文字と小文字が区別される拡張子がありますが、これら2つのファイルを同じディレクトリに配置することはできません。何故なの?

ドライブがNTFSとしてフォーマットされている場合、canは両方ともexample.JPGおよびexample.jpg

ただし、Win32アプリケーションでこれらのファイルの1つを開こうとした場合(メモ帳など)、のいずれかにのみアクセスできます [ファイルを開く]ダイアログボックスに入力するファイル名。


NTFSボリュームではファイル名は大文字と小文字が区別されます

POSIX準拠の要件の一部として、Windows NTファイルシステム(NTFS)は、大文字と小文字を区別するファイルとディレクトリの命名規則を提供します。 NTFSとPOSIXサブシステムはそれぞれ大文字と小文字を区別しますが、16ビットのWindowsベース、MS-DOSベース、OS/2ベース、およびWin32ベースのアプリケーションは対応していません

NTFSでは、大文字と小文字のみが異なる、同じディレクトリに格納された一意のファイル名を作成できます。たとえば、次のファイル名はNTFSボリューム上の1つのディレクトリに共存できます。

CASE.TXT
case.txt
case.TXT

ただし、Win32アプリケーションでこれらのファイルの1つを開こうとした場合(メモ帳など)、のいずれかにのみアクセスできます [ファイルを開く]ダイアログボックスに入力するファイル名。

...

NTFSは、NTFSと対話するアプリケーションのサブシステムで選択できる2つのわずかに異なる動作モードをサポートしています。 1つ目は完全に大文字と小文字が区別され、ディスク上のファイルを選択する場合は、大文字と小文字を含め、アプリケーションによって提供されるファイル名がディスクに保存されている名前と一致することを要求します。 2番目の操作モードでは、大文字と小文字が保持されますが、大文字と小文字は区別されません。つまり、指定された名前がディスクに保存されている名前と異なる場合でも、アプリケーションはディスク上のファイルを選択できます。どちらのモードでも、ファイルの作成に使用された大文字と小文字が保持されます。ここで述べた動作の違いは、アプリケーションが既存のファイルを見つける必要がある場合にのみ適用されます。 POSIXは完全な大文字と小文字を区別するモードを利用しますが、MS-DOS、WOW、およびWin32サブシステムは大文字と小文字を区別しないモードを使用します

ソース ファイル名はNTFSボリュームでは大文字と小文字が区別されます


実際には、これを達成することができませんでした

同じディレクトリで2つのファイルを作成するには、Posixサブシステムを有効にする必要がある場合のみ異なります。

POSIXは完全な大文字と小文字を区別するモードを利用しますが、MS-DOS、WOW、およびWin32サブシステムは大文字と小文字を区別しないモードを使用します。

Posixを有効にするには、以下を参照してください。

32
DavidPostill

NTFSは大文字と小文字を区別します(ガラスの見方によっては、良いことも悪いこともあります)。実際には、ASCII a-zとA-Zの値を区別する必要がなかったため、初期の段階では大文字と小文字を区別しないことは困難でした。

最近のWindows OSで使用されているNTFS(ファイルシステム)がPOSIXに準拠するためにサポートできる場合でも、Windows(OS)で大文字と小文字を区別する方法はありません。

Microsoftによると、NTFSの同じディレクトリ( ここをクリック )にexample.JPGとexample.jpgを含めることができますが、OS(Windowsのすべてのバージョン)はそれをサポートしていないため、ファイルシステムは無意味です:)

POSIX準拠の要件の一部として、Windows NTファイルシステム(NTFS)は、大文字と小文字を区別するファイルとディレクトリの命名規則を提供します。 NTFSとPOSIXサブシステムはそれぞれ大文字と小文字を区別しますが、16ビットのWindowsベース、MS-DOSベース、OS/2ベース、およびWin32ベースのアプリケーションは大文字と小文字を区別しません。

6