Меню Рубрики

Какие символы нельзя использовать в имени файла windows

Мир цифровой информации

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

Понятия «путь» и «имя файла»

Очень часто в компьютерной литературе используются термины «путь» и «имя файла» под разными значениями. Обычно под словом «путь» понимают адрес или расположение файла, т. е. диск, папка и подпапки в которых расположен файл. Однако Microsoft и другие считают, что в путь к файлу входит не только его расположение но и само имя файла. А некоторые подразумевают под словом «путь» только имена файла и папок, в которых он расположен, без указания диска. Некоторые пользователи полагают, что «имя файла» не включает расширение. В данной статье расширение всегда является частью имени файла. На примере ниже синим цветом выделен путь к файлу, а красным имя файла.
X:\папка\подпапка\ файл.расширение

Зарезервированные символы и имена

Большинство часто употребляемых символов разрешается использовать в имени файла. Имя файла не должно содержать „ ” (знак больше), „:” (двоеточие), „ «” (двойные кавычки), „ /” (слеш), „ \” (обратный слеш), „ |” (вертикальная черта), „ ?” (вопросительный знак), „ *” (звездочка), а также не может заканчиваться точкой или пробелом. Файлы также нельзя называть зарезервированными именами устройств: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, и LPT9.

Ограничения на длины имен файлов и путей

Существуют ограничения на длину имени файла и на длину пути. Абсолютное ограничение длины имени файла вместе включая путь к нему равно 260 символам. Этот предел называют термином MAX_PATH. На самом же деле на практике пределы для имен еще меньше из-за ряда других ограничений. Например, каждая строка на конце должна содержать так называемый нулевой символ, который обозначает конец строки. Несмотря на то, что маркер конца строки не отображается, он учитывается как отдельный символ при подсчете длины, а значит остается 259 символов доступных для имени файла и пути к нему. Первые три символа в пути используются для обозначения диска (например, C:\). Это уменьшает предел для имен папок, подпапок и файла до 256 символов.

На имя объекта (папки или файла) наложено ограничение длины 255 символов. Этот предел действителен только, если объект не расположен внутри папки. Так как при расположении объекта внутри папки, сумма длин всех папок в которых он расположен, разделителей и имени объекта ограничена 256 символами, то предел длины самого имени объекта меньше 255 символов.

Источник

Почему в названии файлов нельзя использовать некоторые знаки (* / и др.)?

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

Возьмем пример с обратной косой чертой (\)

Допустим, вы пользователь Windows и вы хотите добавить файл в папку C:\Users\Public\Music

Если ваш файл будет называться melody.mp3, то путь до файла (адрес, по которому компьютер будет искать этот файл, если вы попросите) будет выглядеть как C:\Users\Public\Music\melody.mp3

Это просто и понятно. Но допустим, вы решили назвать файл my\melody.mp3

Путь в такой ситуации выглядел бы как C:Users\Public\Music\my\melody.mp3

Если вы захотите открыть файл, компьютер будет искать папку my внутри папки Music. Естественно, он ее не найдет. Чтобы избежать таких ситуаций, пользователям не разрешается использовать \ в названиях

Прямая косая черта / тоже относится к служебным символам и используется для параметров команд (это редко нужно рядовому пользователю, конечно).

Символ * тоже относится к служебным: при поиске по файлам он используется для обозначения произвольного набора символов. Например, если вам нужно выбрать все текстовые файлы, начинающиеся на A, вы можете указать в поиске такое: A*.txt и получите список всех подходящих файлов. Очевидно, что использование звездочки в названиях создало бы много проблем.

2 5 · Хороший ответ

Здравствуйте, как можно поставить символ слэш в названии файла? Я скачал файл с интернета, в названии которого используется слэш.?

Можно предложить вариант, который упрощенно выглядит следующим образом.

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

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

Что означает дополнительная буква L в названии лекарств?

Если я вас правильно понял, то это что-то вроде L-тироксина, L-аргинина. L — это обозначение левовращающего оптического изомера (энантиомера) вещества. Некоторые вещества имеют один химический состав, но могут находиться в разных изоформах-состояниях. При этом разные оптические изомеры по существу являются зеркальными отражениями друг друга. Они могут иметь совершенно разные свойства и эффекты на организм: D-меторфан (декстрометорфан) — диссоциатив, а L-меторфан (левометорфан) — опиоидный анальгетик. У изомеров может быть разное сродство к одним и тем же рецепторам, поэтому выделенный изомер может быть эффективнее смеси (рацемата), из которой этот изомер не выделяли.

1 3 · Хороший ответ

В каком формате лучше сохранять логотипы?

Логотипы лучше иметь в нескольких форматах, в зависимости от цели их использования.

С моей точки зрения, необходимо иметь как минимум в двух форматах:

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

cdr (формат CorelDRAW ) или другого профессионально редактора, эти логотипы нужны для типографий для печати бланков и другой рекламной продукции.

Почему в адресной строке так много знаков процента?

Cтандарт URL (Universal Resource Locator — универсальный указатель ресурса) обладает серьёзным недостатком — в нём можно использовать только ограниченный набор символов, даже меньший, нежели в ASCII: латинские буквы (в верхнем и нижнем регистре), цифры и лишь некоторые знаки препинания (- _ .

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

Такое преобразование происходит в два этапа: сначала каждый символ кириллицы кодируется в Юникоде (UTF-8) в последовательность из двух байтов, а затем каждый байт этой последовательности записывается в шестнадцатеричном представлении:

р → D1 и 80 → %D1%80, и т. д

Перед каждым таким шестнадцатеричным кодом байта, согласно спецификации URL[4], ставится знак процента (%) — отсюда даже возник английский термин «percent‐encoding», обозначающий способ кодирования символов в URL и URI.

Как выглядит знак авторского права?

Многие ошибочно полагают, что знак охраны авторского права (знак копирайта) — это латинская буква «С» в окружности. Не совсем так: внешний вид знака охраны авторского права четко определен российским законодательством. Ему посвящена целая статья Гражданского кодекса — 1271, в которой говорится, что этот знак «помещается на каждом экземпляре произведения и состоит из следующих элементов:

  • латинской буквы «C» в окружности;
  • имени или наименования правообладателя;
  • года первого опубликования произведения».

Кроме того, употребление символа регулируется государственным стандартом Российской Федерации ГОСТ Р 7.0.1-2003 «СИБИД. Знак охраны авторского права. Общие требования и правила оформления». Стандарт регулирует форму представления знака на следующих объектах:

  • книги и брошюры;
  • сериальные издания;
  • ноты;
  • картографические издания;
  • художественные альбомы;
  • аудио- и видеоиздания;
  • электронные издания.

В соответствии с этим стандартом в знаке копирайта на части составных или производное произведение должен быть указан конкретный объект защиты права:

  • пересказ;
  • иллюстрации;
  • вступительная статья;
  • составление;
  • перевод на русский (или любой другой) язык.

И тогда знак может приобретать следующий вид: «© Алексеева А.К., перевод на русский язык, гл. 1-2, 2015».

Источник

Какие символы запрещены в именах каталогов Windows и Linux?

я знаю, что / является незаконным в Linux, и следующие являются незаконными в Windows (Думаю) * . » / \ [ ] : ; | = ,

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

мне нужно сначала создать каталог в файловой системе, используя имя что может содержат запрещенные символы, поэтому я планирую заменить эти символы подчеркивает. Затем мне нужно записать этот каталог и его содержимое в zip-файл (используя Java), поэтому любые дополнительные советы относительно имен zip-каталогов буду признателен.

12 ответов

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

Windows не различает символы верхнего и нижнего регистров, поэтому вы не можете создать папку с именем A если один по имени a уже существует. Хуже того, казалось бы-разрешенные имена вроде PRN и CON , и многие другие, зарезервированы и не допускается. Windows также имеет несколько ограничений длины; имя файла, допустимое в одной папке, может стать недопустимым при перемещении в другую папку. Правила именование файлов и папок находится на MSDN.

вы не можете, как правило, использовать пользовательский текст для создания Каталог имен Windows. Если вы хотите разрешить пользователям называть все, что они хотят, вы должны создать безопасные имена, такие как A , AB , A2 et al., хранить созданные пользователем имена и их эквиваленты путей в файле данных приложения и выполнять сопоставление путей в приложении.

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

давайте держать его простым и ответить на вопрос, в первую очередь.

запрещено печатаемые символы ASCII являются:

непечатаемые символы

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

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

зарезервированные имена файлов

следующие имена зарезервировано:

другие правила

имена файлов не могут заканчиваться пробелом или точкой.

в Linux и других системах, связанных с Unix, есть только два символа, которые не могут отображаться в имени файла или каталога, и это NUL ‘ ‘ и Слэш ‘/’ . Косая черта, конечно, может отображаться в имени пути, разделяя компоненты каталога.

слух 1 есть ли у Стивена Борна (из «shell» fame) каталог, содержащий 254 файла, по одному на каждую букву (код символа), которые могут отображаться в имени файла (исключая / , ‘ ‘ ; на имя . был текущий каталог, конечно). Он использовался для тестирования оболочки Борна и обычно наносил ущерб неосторожным программам, таким как программы резервного копирования.

другие люди покрыли правила Windows.

обратите внимание, что MacOS X имеет файловую систему без учета регистра.

1 это был Керниган и Пайк в практика программирования кто сказал это в главе 6, тестирование, §6.5 стресс Тесты:

когда Стив Борн писал свою оболочку Unix (которая стала известна как оболочка Борна), он сделал каталог из 254 файлов с односимвольными именами, по одному для каждого значения байта, кроме ‘ ‘ и Слэш, два символа, которые не могут отображаться в именах файлов Unix. Он использовал эту директорию для всевозможных тестов на соответствие шаблону и токенизацию. (Конечно, тестовый каталог был создан программой.) В течение многих лет после этого этот каталог был проклятием файл-дерево-Ходячие программы; он тестировал их до разрушения.

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

это не решает проблему зарезервированных имен в целевой файловой системе, но с белым списком проще снижение рисков у источника.

в этом духе, это набор символов, которые можно считать безопасным:

  • буквы (a-z A-Z) — символы Юникода, а также, если это необходимо
  • цифры (0-9)
  • подчеркивания (_)
  • дефис (-)
  • пробел
  • точка (.)

и любые дополнительные безопасные символы, которые вы хотите разрешить. Помимо этого, вы просто должны применять некоторые дополнительные правила, касающиеся пробелов и точек. Этого обычно достаточно:

  • имя должно содержать хотя бы одну букву или число (чтобы избежать только точек/пробелов)
  • имя должно начинаться с буквы или цифры (чтобы избежать ведущими точками/пробелами)

это уже позволяет довольно сложные и бессмысленные имена. Например, эти имена были бы возможны с этими правилами и были бы допустимыми именами файлов в Windows / Linux:

по сути, даже с таким небольшим количеством белых символов вы все равно должны решить, что на самом деле имеет смысл, и проверить/настроить имя соответственно. В одном из моих приложений я использовал те же правила, что и выше, но удалил все дубликаты точек и пробелов.

Ну, если только для исследовательских целей, то вам лучше всего посмотреть эта запись Википедии о именах файлов.

Если вы хотите написать портативную функцию для проверки ввода пользователя и создания имен файлов на основе этого, короткий ответ не. Взгляните на портативный модуль, такой как Perl File:: Spec чтобы увидеть все прыжки, необходимые для выполнения такой «простой» задачи.

простой способ заставить Windows сообщить вам ответ-попытаться переименовать файл через Проводник и ввести / для нового имени. Windows появится окно сообщения, сообщающее вам список незаконных символов.

для Windows вы можете проверить его с помощью PowerShell

для отображения UTF-8 кодов вы можете конвертировать

по состоянию на 18.04.2017 среди ответов на эту тему нет простого черного или белого списка символов и имен файлов — и есть много ответов.

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

пример кода VBA:(будут добавлены позже)

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

например, хотя это может быть законным именем файла 1>&2 или 2>&1 в Unix такие имена файлов могут быть неправильно истолкованы при использовании в командной строке.

аналогичным образом можно было бы назвать файл $PATH , но при попытке доступа к нему из командной строки оболочка переведет $PATH его значение переменной.

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

в оболочках Unix вы можете цитировать почти каждый символ в одинарных кавычках ‘ . Кроме самой одинарной кавычки, и вы не можете выражать управляющие символы, потому что \ не расширяется. Доступ к самой одинарной кавычке из строки с кавычками возможен, потому что вы можете объединить строки с одинарными и двойными кавычками, например ‘I'»‘»‘m’ который можно использовать для доступа к файлу с именем «I’m» (двойная цитата также возможна здесь).

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

если вы хотите быть хорошим, не используйте ни один из символов оболочки и типичных команд, используемых в качестве синтаксических элементов, иногда зависящих от позиции, поэтому, например, вы все еще можете использовать — , но не как первый символ; то же самое с . , вы можете использовать его в качестве первого символа только тогда, когда вы имеете в виду его («скрытый файл»). Когда вы имеете в виду, ваши имена файлов-это escape-последовательности VT100; -), так что LS искажает вывод.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Какие редакции windows server существуют чем отличаются
  • Какие процессы нужно отключить в диспетчере задач windows 7
  • Какие процессы нельзя закрывать в диспетчере задач windows 7
  • Какие процессы нельзя завершать в диспетчере задач windows 7
  • Какие процессы можно отключить в windows 7 для лучшего быстродействия