Могут ли быть два файла с одинаковыми именами в одном каталоге

Обновлено: 05.07.2024

Тип: внутренний (1.0 и выше)

COPY [/Y|-Y] [/A][/B] [d:][путь]имя файла [/A][/B] [d:][путь][имя файла] [/V] < br />или
КОПИРОВАТЬ [/Y|-Y] [/A][/B] [d:][путь]имя_файла+[d:][путь]имя_файла[. ] [d:][путь][имя_файла] [/V]

Назначение: копирование или добавление файлов. Файлы можно копировать с тем же именем или с новым именем.

COPY обычно используется для копирования одного или нескольких файлов из одного места в другое. Однако COPY также можно использовать для создания новых файлов. Путем копирования с консоли клавиатуры (COPY CON:) на экран можно создавать файлы, а затем сохранять их на диск.

Первое введенное имя файла называется исходным файлом. Второе имя файла, которое вы вводите, называется целевым файлом. Если в процессе копирования возникают ошибки, программа COPY будет отображать сообщения об ошибках с использованием этих имен.

В отличие от команды BACKUP, скопированные файлы сохраняются в том же формате, в котором они были найдены. Скопированные файлы можно использовать так же, как и исходные (независимо от того, является ли скопированный файл файлом данных или программой).

COPY также можно использовать для передачи данных между любыми системными устройствами. Файлы также могут быть объединены в процессе копирования.


ПРИМЕЧАНИЕ:
Файлы можно копировать в тот же каталог, только если они копируются с новым именем. Если вы скопируете файл в другой каталог без указания нового имени, файл будет скопирован с тем же именем. Если вы попытаетесь скопировать файл в тот же каталог без указания нового имени, DOS отменит копирование и отобразит сообщение

Файл не может быть скопирован сам в себя

Команда COPY также обсуждалась в Главе 1, Введение.

/Y — заставляет COPY заменить существующие файлы без запроса подтверждения. По умолчанию, если вы укажете существующий файл в качестве целевого файла, COPY выдаст запрос на подтверждение. (В предыдущих версиях DOS существующие файлы просто перезаписывались.)

/-Y — отображает запрос подтверждения перед копированием существующих файлов.

/A — используется для копирования файлов ASCII. Применяется к предшествующему имени файла и ко всем последующим именам файлов. Файлы будут копироваться до тех пор, пока в копируемом файле не будет обнаружена метка конца файла. Если в файле встречается метка конца файла, остальная часть файла не копируется. DOS добавит метку конца файла в конец скопированного файла.

/B — используется для копирования двоичных файлов. Применяется к предшествующему имени файла и ко всем последующим именам файлов. Скопированные файлы будут прочитаны по размеру (в соответствии с количеством байтов, указанным в списке каталогов файлов). Метка конца файла не ставится в конец копируемого файла.

/V — проверяет после копирования, чтобы убедиться, что файл был скопирован правильно. Если копию невозможно проверить, программа выдаст сообщение об ошибке. Использование этого параметра приведет к замедлению процесса копирования.

Первое введенное имя файла является исходным файлом; второй файл является целевым файлом. Чтобы скопировать файл TEST.DOC из текущего каталога на диск B (с тем же именем), введите

Чтобы скопировать файл TEST.DOC в текущий каталог с новым именем TEST2, введите

копировать test.doc test2

Чтобы скопировать и объединить (объединить) файлы TEST1.DOC и TEST2.DOC в новый файл TEST3, введите

копировать test1.doc+test2.doc b:test3

Вы также можете объединять файлы, используя подстановочные знаки (? и *). Чтобы скопировать все файлы с расширением .DOC на диске C в новый файл ALLDOCS на диске B, введите

копировать c:*.doc b:alldocs

При копировании возможны и другие, более сложные комбинации. Например, чтобы объединить все файлы с расширением .TXT со всеми файлами с таким же именем и расширением .DOC, скопировав вновь объединенный файл в новый файл на диске B с расширением .ADD, введите

копировать *.txt+*.doc b:*.add

В этом случае файл TEST.TXT будет объединен с файлом TEST.DOC, в результате чего будет создан объединенный файл с именем TEST.ADD.

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

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

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

Действительно ли это происходит?Насколько я понимаю (хотя у меня нет большого опыта), единственный способ запретить вам это делать - это если файлы будут записываться в одно и то же пространство памяти. Это то, что происходит?

@RestlessC0bra: Все дело в идентификации. Если две вещи имеют одинаковый идентификатор, как вы можете определить, какую из них вы хотите получить? Вот почему у нас есть паспорта, и мы не только используем наши имена в качестве удостоверений личности (наши имена не уникальны). Конечно, каждый файл может также иметь уникальный числовой идентификатор, но это не очень запоминается для нас («что это был за файл 35723 снова?»).

4 ответа 4

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

Кроме того, все комментарии под вашим вопросом абсолютно верны.

ИЗМЕНИТЬ

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

ПРИМЕЧАНИЕ:

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

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

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

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

Если у вас есть какой-то «очень важный файл» и файл с таким же названием «для прикрытия», как ОС узнает, какой из них вы хотите открыть? Файлы идентифицируются по имени.

скорее идентифицирует файл. Например, когда вы загружаете что-то дважды, система добавляет к этому номер. Итак, если вы загрузите 50 файлов, каждый файл будет иметь цифру или букву (не уверен) в конце, но это поможет вам идентифицировать файл. вы также можете скрыть файлы, если вам нужно скрыть очень важные вещи ;). По крайней мере, я знаю, что вы можете сделать это на Mac

Чтобы гарантированно выполнить какое-либо действие, инструкции должны быть однозначными. Имя файла (или имя файла) используется для идентификации места хранения в файловой системе.

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

Теперь, когда мы знаем, что сохранение уникальных имен жизненно важно, все, что нам нужно, это функция для проверки существования файла для ответа на ваш вопрос, часть 2. Поскольку ОС в основном написаны на C, как лучше всего проверить, существует ли файл на C? ? вопрос о SO должен ответить на это для вас.

Благодаря коротким именам файлов и жестким ссылкам один файл может иметь несколько имен. (И в целях сегодняшнего обсуждения я рассматриваю полный путь как имя, а не только часть после последней обратной косой черты. Не заставляйте меня возвращать придирчивый угол.) Например, C:\PROGRA~1 и C:\Program Files — два возможных имени для одного и того же каталога благодаря коротким именам. [Опечатка исправлена ​​в 7:15 утра.] Если вы создали жесткие ссылки, вы можете дать одному файлу два совершенно не связанных имени, и эти имена даже не обязательно должны находиться в одном и том же каталоге.

С другой стороны, у вас не может быть двух файлов с одинаковыми именами. Что бы это вообще значило? Какой из них вы получите, если сделаете открытый вызов? Как бы вы открыли другой? Черт возьми, еще до того, как мы дойдем до этого момента: как вообще можно создать два файла с одинаковыми именами? Если вы вызовете CreateFile для создания «второго» файла, он просто откроет существующий!

Вот почему меня сбивает с толку этот вопрос, который задает:

Я видел несколько случаев, когда люди писали свою собственную версию GetLongPathName (обычно потому, что им нужна поддержка NT4) с помощью FindFirstFile. Существуют ли ситуации, когда этот подход вернет неправильный путь? Безопасно ли это на практике, потому что FindFirstFile("foo.bar") всегда будет сначала возвращать точное совпадение, прежде чем возвращать "foo.barbaz"?

В этом вопросе предполагается, что в каталоге могут быть два файла с одинаковым именем: один — это файл «foo.bar»; другой — это файл с длинным именем «foo.barbaz» и коротким именем «foo.bar».

Я не уверен, какая последовательность событий может привести к появлению двух файлов с одинаковыми именами. Вот один из сценариев:

  1. Создайте файл «foo.barbaz».Ему присваивается короткое имя «foo.bar».
  2. Создайте файл «foo.bar». При этом создается новый файл с именем «foo.bar», который конфликтует с коротким именем существующего файла «foo.barbaz».

За исключением того, что этого не произойдет. Когда вы выполняете шаг 2, попытка создать файл «foo.bar» просто перезаписывает существующий файл, одним из имен которого является «foo.bar». Результат: Один файл с длинным именем «foo.barbaz» и коротким именем «foo.bar».

Другой сценарий может выглядеть следующим образом:

  1. Создайте файл «foo.bar».
  2. Создайте файл «foo.barbaz». Файловая система автоматически назначает короткое имя «foo.bar».

За исключением того, что это не то, что происходит. На втором этапе файловая система генерирует короткое имя типа «foo~1.bar» специально, чтобы избежать конфликта имен.

Вы можете запустить эти эксперименты самостоятельно из командной строки для подтверждения. Команда «dir /x» пригодится.

В следующей статье используются параметры, доступные начиная с версии Professional и типа проекта.

Этот параметр очень полезен, если у вас есть несколько файлов с одинаковыми именами и вы хотите установить только один из них, например, исходя из версии ОС или языка. После завершения процесса установки нужный файл появится в папке установки.

Поскольку операционная система не позволяет иметь два или более файла с одинаковыми именами в одной папке, мы воспользуемся небольшой хитростью. Мы поместим каждый файл в отдельную подпапку, затем настроим проект установщика так, чтобы он не создавал эти подпапки, а вместо этого устанавливал файл непосредственно в родительскую папку на основе условия, оцениваемого во время установки. Затем вам нужно спроектировать условие установки, чтобы оно было истинным только для одной из папок/файлов, как вы увидите в нашем примере ниже.

Чтобы установить два или более файла с одинаковым именем в одну и ту же папку в зависимости от условия, необходимо выполнить следующие шаги:

  1. Перейдите на страницу "Файлы и папки" и выберите папку, в которой вы хотите сохранить окончательный файл.
  2. В этой папке создайте две подпапки. Например: Моя_папка_1 и Моя_папка_2 .
  3. В первую папку My_folder_1 добавьте первый файл Eula.rtf.
  4. Во вторую папку My_folder_2 добавьте второй файл Eula.rtf .
  5. Перейдите в родительскую папку, выберите первую созданную ранее подпапку ( My_folder_1 ) и в контекстном меню выберите параметр "Свойства".
  6. В разделе "Компонент" вкладки "Свойства" установите флажок Установить содержимое папки в родительскую папку.
  7. Выполните вышеуказанный шаг для второй папки.
  8. Перейдите на страницу организации и поместите каждый из двух файлов в отдельный компонент.
  9. Для каждого компонента задайте «Условие установки», исходя из которого вы хотите установить этот файл, как показано в видео ниже.

Если вы хотите установить файл на основе решения, выбранного в пользовательском интерфейсе установщика, помните, что только общедоступные свойства передаются с этапа диалогов мастера на этап выполнения установки.

Ниже приведена ссылка на короткое видео, демонстрирующее шаги, описанные в этой статье.

Файл может иметь несколько имен, но два файла не могут иметь одинаковые имена. Благодаря коротким именам файлов и жестким ссылкам один файл может иметь несколько имен. Например, C:\PROGRA~1 и C:\Program Files — это два возможных имени для одного и того же каталога благодаря коротким именам.

Как сохранить два файла с одинаковыми именами?

В одной папке не может быть двух файлов с одинаковыми именами. Вам нужно либо добавить случайную строку в конец каждого файла, как вы предлагаете, либо сохранить файлы каждого пользователя в каталоге, выделенном для их учетной записи. Сохранение нескольких файлов с одним и тем же именем в одной папке просто невозможно.

Как случайно переименовать файл?

Непонятно, как можно пользоваться случайным переименованием, но это несложно. Сначала загрузите папку, содержащую все те файлы, которые вы хотите переименовать. Обычно вы делаете это, щелкнув правой кнопкой мыши папку и выбрав «Массовое переименование». Затем перейдите в меню «Действие» и выберите «Случайная сортировка».

Как рандомизировать музыкальные файлы в папке?

Как рандомизировать файлы в папках (утилита массового переименования)

  1. Пошаговая загрузка утилиты массового переименования.
  2. Шаг. После установки используйте браузер файлов, чтобы перейти в папку со всеми файлами, которые вы хотите рандомизировать.
  3. Шаг. Нажмите «Действие» — «Сортировка в случайном порядке».
  4. Шаг. Теперь в правом нижнем углу есть поле "Нумерация".

Как сделать слайд-шоу Windows в случайном порядке?

Вы можете сделать так, чтобы изображения показывались в случайном порядке при запуске слайд-шоу. Для этого откройте меню приложения на верхней панели, нажмите «Настройки» и перейдите на вкладку «Плагины». Затем установите флажок «Случайный показ слайдов» и закройте диалоговое окно.

Как изменить настройки слайд-шоу в Windows?

Вы можете использовать функцию слайд-шоу в проводнике -> Управление, а затем щелкнуть правой кнопкой мыши изображения, чтобы получить три варианта: медленное, среднее и быстрое. Для этого вы можете поместить изображения в одну папку, а затем щелкнуть инструменты для работы с изображениями в разделе «Управление».

Как сделать слайд-шоу из изображений в Windows?

Чтобы запустить слайд-шоу, нажмите кнопку с тремя точками в правом верхнем углу. Это расширяет раскрывающееся меню со списком параметров «Слайд-шоу» вверху. Нажмите эту опцию, чтобы начать шоу. Как только слайд-шоу начнется, оно будет циклически перебирать все изображения, хранящиеся в папке, связанной с исходной фотографией.

Как создать случайный слайд в PowerPoint?

Сначала откройте меню «Пользовательское слайд-шоу» и выберите «Пользовательские показы»… Помните, каждый раз, когда вы запускаете макрос, этот порядок будет меняться. Здесь справа вы увидите, что вместо показа всех ваших слайдов макрос дал указание PowerPoint запустить пользовательское отображение под названием «Случайно».

Читайте также: