Розширення з урахуванням регістру файлів у Windows та Linux


10

У Linux ви можете мати файли example.JPGі example.jpgв одному каталозі.

У Windows у вас є розширення з урахуванням регістру, але ви не можете розмістити ці два файли в одній директорії. Чому ні?


1
Можливий дублікат Чи всі версії корпусу Windows нечутливі? (там, мабуть, краще питання, ніж це)
Коул Джонсон,

FAT містив розширення окремо від базової назви, а ОС додала .для введення та відображення цілей. (Я вважаю, що можна впевнено сказати, що практично ніхто не використовує FAT ні для чого, крім оперативної сумісності. рядок символів. У розширенні файлу немає нічого особливого: це просто за умовами, і файлова система трактується як частина імені файлу.
CVn

Знайдіть ObCaseInsensitiveі superuser.com/q/266110/59271
користувач541686

@grawity - це не просто випадок томайто, томахто?
wvdz

Відповіді:


32

У Windows у вас є розширення з урахуванням регістру, але ви не можете розмістити ці два файли в одній директорії. Чому ні?

Якщо привід відформатований як NTFS, ви можете мати і example.JPGі example.jpg.

Однак якщо ви спробуєте відкрити один із цих файлів у програмі Win32 , наприклад, Блокноті, ви матимете доступ лише до одного з файлів , незалежно від випадку імені файлу, який ви вводите у діалоговому вікні «Відкрити файл».


Назви файлів залежать від регістру у томах NTFS

Як частина вимог щодо відповідності POSIX, файлова система Windows NT (NTFS) надає залежність від регістру файлів та імен файлів каталогів. Незважаючи на те, що NTFS та підсистема POSIX добре справляються з чутливістю до регістру, 16-бітні програми на базі Windows, MS-DOS, ОС / 2 та Win32 не відповідають цим .

У NTFS можна створити унікальні імена файлів, що зберігаються в одному каталозі, які відрізняються лише у випадку. Наприклад, такі файли файлів можуть співіснувати в одному каталозі на томі NTFS:

CASE.TXT
case.txt
case.TXT

Однак якщо ви спробуєте відкрити один із цих файлів у програмі Win32 , наприклад, Блокноті, ви матимете доступ лише до одного з файлів , незалежно від випадку імені файлу, який ви вводите у діалоговому вікні «Відкрити файл».

...

NTFS підтримує два дещо різні режими роботи, які можуть бути обрані підсистемою програми, що взаємодіє з NTFS. Перший є повністю чутливим до регістру і вимагає, щоб імена файлів, надані програмою, відповідали іменам, збереженим на диску, включаючи регістр, якщо файл на диску потрібно вибрати. Другий режим роботи - це збереження регістру, але не враховує регістр. Це означає, що програми можуть вибирати файли на диску, навіть якщо надане ім'я відрізняється у випадку, якщо ім'я, збережене на диску. Зверніть увагу, що обидва режими зберігають випадок, який використовується для створення файлів. Відмічена тут різниця в поведінці застосовується лише тоді, коли програмі потрібно знайти існуючий файл. POSIX використовує переваги повного регістру, в той час як MS-DOS, WOW таПідсистеми Win32 використовують режим нечутливості регістру .

Назви вихідних файлів залежать від регістру у томах NTFS :


На практиці я цього не зміг досягти

Щоб отримати два файли в одному каталозі, що відрізняються лише у кожному випадку, вам потрібно включити підсистему Posix .

POSIX використовує перевагу повного регістру, в той час як MS-DOS, WOW та Win32 підсистеми використовують режим нечутливості регістру.

Щоб увімкнути Posix, див.


Це для мене новина. Мені довелося тимчасово подати заяву, бо, хоча у вас є цитати, я на практиці цього не зміг досягти . Ви б не хотіли запропонувати інструкції, як це можна здійснити на практиці?
MDMoore313

7
@BigHomie Це оболонка Windows, яка вам заважає. NTFS може містити a.JPG та a.jpg в одному каталозі. Якщо увімкнено підсистему Unix (застаріле), імена файлів також залежать від регістру і в оболонці Windows Explorer. technet.microsoft.com/en-us/library/cc771470.aspx
Furkan Omay

1
@FurkanOmay Я бачу, стара хороша підсистема Unix, дякую за це.
MDMoore313

1
@FurkanOmay Я знав, що ти маєш на увазі;)
MDMoore313

@BigHomie Відповідь оновлено, щоб пояснити, як увімкнути posix
DavidPostill

6

NTFS - чутливий до регістру (і залежно від того, як ви переглядаєте скло, це може бути добре чи погано). Насправді досягнення чутливості до випадків було проблемою в перші дні, оскільки вам довелося НЕ розрізняти значення ASCII для az & AZ.

Немає можливості зробити Windows (ОС) регістровими, хоча NTFS (файлова система), що використовується в даний час ОС Windows, може підтримувати, щоб відповідати POSIX.

На думку Microsoft, ви можете мати example.JPG та example.jpg в одному каталозі NTFS ( натисніть тут ), але ОС (Усі версії Windows) не підтримує це, що робить факт, що файлова система може бути безглуздою :)

Як частина вимог щодо відповідності POSIX, файлова система Windows NT (NTFS) надає залежність від регістру файлів та імен файлів каталогів . Незважаючи на те, що NTFS та підсистема POSIX добре справляються з чутливістю до регістру, 16-бітні програми на базі Windows, MS-DOS, ОС / 2 та Win32 не відповідають цим.


1
Нечутливість корпусу не є такою важкою, особливо в кодировках, як ASCII. DOS це зробив, CP / M зробив це. Нечутливість корпусу разом із збереженням корпусу - важче зламати гайку. Безумовно, це не важко, але складніше робити це послідовно, коли вам може пощастити мати 16-32 КБ оперативної пам’яті, і для цього потрібно утримувати додаток, що робить і корисні речі.
CVn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.