2015-09-22 6 views
1

Я всегда задавался вопросом, почему невозможно иметь два файла одного и того же типа данных под тем же именем в одном каталоге. Я в основном говорю о Windows, но я думаю, что это относится к другим ОС. Что происходит в ОС, когда вы пытаетесь это сделать, и это запрещает вам? Заранее спасибо.Почему у вас не может быть двух файлов с тем же именем в одном каталоге?

+2

Почему это происходит довольно очевидно. Предположим, у меня есть два файла: '/ var/apples (500k)' и '/ var/apples (10gb)'. Как удалить только 10gb? Как вы читаете содержимое того или другого? Мир, в котором имена файлов не являются уникальными идентификаторами, - это мир, в котором я не хочу жить. – CollinD

+0

Почему у вас нет двух переменных с одинаковым именем и разными значениями? Или два человека, которые используют один и тот же физический паспорт? Или почему я не могу быть в двух разных физических местах одновременно? –

+0

Кроме того, с тем же именем, у вас будет больше времени, чтобы искать все, что вы ищете. Потому что вы не хотите, какой файл вы хотите. Однако я нашел это в Интернете. [Http://answers.microsoft.com/en-us/windows/forum/windows_7-files/2-files-exactly-same-name-in-same-folder/9c7628de-bc1a- 48c8-a369-6a74da1ed4c4?auth = 1] –

ответ

1

Чтобы совершить какое-либо действие, инструкции для этого должны быть недвусмысленными. A filename (or file name) is used to identify a storage location in the file system.

OS требует уникальных имен файлов, потому что, когда вы укажете ОС на выполнение чего-то, и у вас есть два файла с точно таким же именем, ОС не может знать, какой файл должен выполнить действие. Например, при добавлении к текстовому файлу ОС может присоединяться к неправильному одному из двух с тем же именем, что делает всю систему ненадежной. Так что же нам делать? Мы можем добавить другую уникальную информацию в каждый файл. Но это, по сути, сводится к той же идее ... почему бы просто не сохранить уникальные имена?

Теперь, когда мы знаем, что сохранение уникальных имен жизненно важно, все, что нам нужно, - это функция проверки существования файла для ответа на вопрос 2. Часть ОС в основном находится на C, What's the best way to check if a file exists in C? Вопрос о SO должен ответить на это для вас.

2

Поскольку каждый файл должен быть уникальным, если они находятся в одном каталоге. Таким образом, когда вы его ищете, вы узнаете, какой файл вам нужен.

Плюс все комментарии по вашему вопросу полностью правы.

EDIT

Есть другой способ, чтобы скрыть файлы. Надеюсь, эта ссылка вам поможет.

how to hide files and folders on every operating system

Примечание:

Я Предоставляя эту ссылку, потому что пример вы предоставить мне в комментариях под этим ответом

+0

Благодарим вас за ответ. Но почему он должен быть уникальным? Скажем, файл является .txt. Я бы не прочь поискать оба .txt-файла, чтобы посмотреть, какой именно я хочу. Конечно, это гипотетически. Я никогда этого не сделаю. Но мне было интересно, была ли более глубокая причина. –

+0

Умм, проблема в том, что если у вас есть 100 файлов .txt? теперь вы хотели бы открыть эти 100 файлов = /. –

+0

Возможно, я написал очень важный пароль в этом .txt-файле, и у меня есть другой .txt-файл «для обложки». Если кто-то хочет выполнить поиск на моем компьютере, ОС укажет его на другой .txt. Таким образом, было бы невозможно найти его, не зная, где именно? Вы знаете, ради любопытства. –

0

В Windows, настройки по умолчанию, чтобы игнорировать расширения, так вы можете иметь каталог пакета и файл package.txt в той же папке. Из Проводника Windows появится, что у вас есть записи, называемые «пакет», когда на самом деле он просто скрывает часть имени файла.

+0

Это не вопрос, он спрашивал о двух файлах с одинаковыми «полными именами» (такое же расширение). –

1

На самом деле, можно создать несколько файлов с тем же именем на Windose. Это задевает все, но вы можете написать код, который это сделает.

Многие операционные системы поддерживают несколько файлов с тем же именем в одном каталоге и делают это рационально. Фактически, это была норма, прежде чем Eunuchs и PeeCees отправили операционную систему обратно.