Компьютер работает с информацией, которая может быть текстовой, графической, в аудио или видео формате. Вся информация, обрабатываемая на компьютере, хранится в файлах. Например, файл — это фото, картинка, ролик, документ, презентация, программа и так далее.
Понятие файла является одним из базовых понятий компьютерной грамотности.
Файл – это поименованная область памяти на компьютерном носителе.
Другими словами, файлом называется набор данных на компьютерном носителе (жёсткий диск, флешка, карта памяти в смартфоне, CD и DVD диск и т.п.), у которого есть свое имя (имя файла).
Имя файла
Какие можно использовать символы в имени файла? В именах файлов рекомендуется использовать русские и латинские буквы, цифры, пробелы и знаки препинания.
Однако имя файла не следует начинать с точки, а также использовать в имени квадратные [ ] или фигурные { } скобки. Недопустимыми для имен файлов являются следующие служебные символы / | : * ? “ < >
Существует ли максимальная длина имени файла? Длина имени файла не должна превышать 255 символов. На самом деле, обычно хватает 20-25 символов.
Операционная система Windows не делает различий между строчными и прописными буквами для имен файлов. Это означает, что не получится хранить в одной и той же папке файлы, имена которых различаются только регистром. Например, два имени файла «Название.doc» и «НАЗВАНИЕ.doc» для Windows будет одним именем для одного и того же файла.
Что такое тип файла или формат файла
Как Вы считаете, могут ли быть в одной папке несколько файлов с одинаковым именем PRIMER? Это возможно при условии, что у имени PRIMER будут разные расширения.
Расширение имени файла указывает на его тип (иногда еще говорят — формат файла). Таким образом,
- «тип файла»,
- «формат файла»,
- «расширение файла»,
- «расширение имени файла»
— все эти понятия, по сути, одно и то же.
Например,
PRIMER.doc(x) – типом файла является документ Word (или файл в формате Ворда),
PRIMER.bmp – типом файла является рисунок,
PRIMER.avi – типом файла является видеофайл,
PRIMER.wav – типом файла является аудиофайл.
Все эти файлы имеют разные имена (за счет разных расширений имени файла) и могут храниться в одном и том же месте, т.е. в одной папке.
Если проводить аналогию с именами людей, то имя файла совпадает с именем человека, а расширение имени файла – с фамилией человека. Соответственно, PRIMER.doc и PRIMER.bmp по этой аналогии то же самое, что Иван Петров и Иван Сидоров.
Файлы с именами PRIMER.doc и VARIANT.docx – это два брата из одного семейства документов (с одинаковым расширением .docx). Аналогично, например, Иван Петров и Федор Петров – братья из одной семьи Петровых.
Тип файла (то есть, расширение имени файла) – это часть имени файла, которая начинается с точки, после которой стоят несколько символов.
Распространены типы (расширения), состоящие из трех букв – .doc, .txt, .bmp, .gif и.т.д. Регистр не имеет значения, поэтому .doc и .DOC – это одно и то же расширение документа, один тип файла.
Расширение является необязательным атрибутом в имени файла, то есть его может и не быть. В таком случае в конце имени файла точка, как правило, не ставится.
Зачем нужен тип файла
Расширение в имени файла хоть и не обязательно, но все-таки желательно, так как оно указывает операционной системе Windows на тип файла. Проще говоря, тип файла является подсказкой для Windows, с помощью какой программы системе Windows следует этот файл открывать.
Например, расширение .docx указывает, что файл следует открывать с помощью редактора Word, а расширение .cdr – на то, что файл открывается графической программой Corel Draw.
Есть зарезервированные (служебные) имена, которые нельзя использовать в качестве имен файлов, так как они являются именами устройств:
PRN – принтер,
COM1-COM4 – устройства, присоединяемые к последовательным портам 1-4,
AUX – то же, что COM1,
LPT1-LPT4 – устройства, присоединяемые к параллельным портам 1-4 (как правило, принтеры),
CON (consol) – при вводе – клавиатура, при выводе – экран,
NUL – «пустое» устройство.
Запрещенные символы в именах файлов
Приведу примеры имен файлов, которые являются недопустимыми:
5<>8/7.txt – символы «<», «>» и «/» запрещены,
В чем вопрос? – символ «?» запрещен,
PRN.bmp – здесь PRN зарезервированное имя.
Что такое значок файла или иконка файла
В зависимости от типа файла на экран Windows выводятся различные значки (иконки). Первый пример касается значка текстового редактора:
— значок документа, обрабатываемого редактором Word, и имеющего расширение .doc.
Второй пример относится к архивному файлу. Это тот файл, который был обработан с помощью программы-архиватора WinRAR (сокращенно RAR):
— значок сжатых (архивных) файлов, обрабатываемых архиватором RAR, и имеющих расширение .rar.
Почему я не вижу типы файлов в своем Проводнике?
Проводник Windows (Пуск—Программы—Стандартные—Проводник) по умолчанию имеет режим, когда расширения имен (типы) файлов на экран не выводятся, но при этом выводятся значки (иконки) файлов.
Подробнее о том, как «заставить» Windows показывать типы файлов: Изменение имени файла в Windows
Выбор типа файла при сохранении файла
При сохранении файла достаточно написать его имя и выбрать тип файла из имеющегося списка. Выбранное расширение автоматически добавится к имени файла. Например, на рисунке ниже к имени файла программа сама добавит расширение .jpg. В результате Windows запомнит этот файл с именем «рисунок в paint.jpg».
Прежде чем сохранить файл, выбираем сначала подходящий тип файла, затем вводим имя файла и жмем «Сохранить».
Во избежание недоразумений при сохранении файлов всегда обращайте внимание на строку «тип файла», если она есть. Ведь тип файла является для Windows подсказкой, с помощью которого система определяет, какой именно программой этот файл можно открыть.
Тесная связь между типом файла и программой, открывающей такой тип
Если Вы скачали из Интернета файл, например, с расширением .rar, но на вашем компьютере не установлена программа-архиватор для работы с такими «сжатыми, заархивированными» файлами, то не удивляйтесь, что файл не открывается. Другими словами, надо отдавать себе отчет, что если открывать файлы, например, в видео-формате, то на компьютере должна быть в наличии соответствующая программа для работы с таким форматом.
Можно провести аналогию между файлом (точнее, между типом файла) и программой, работающей с таким типом файлов. Файл – замок, а программа, открывающая этот файл, – ключик к замочку. Как известно, замок без ключика не открывается, да и ключик без замка особой ценности не представляет.
Упражнения по компьютерной грамотности:
1) Попробуйте на Рабочем столе создать две папки с именами: PRIMER и primer.
Для этого на Рабочем столе кликните правой кнопкой мыши на свободном месте, а в появившемся окне – по опции «Создать» и, наконец, клик по опции «Папку». Вместо слов «Новая папка» введите «PRIMER». Затем все это повторяете для создания второй папки с именем «primer». Windows дал Вам «добро» на открытие второй папки?
2) Зайдите, например, в редактор Word и попробуйте сохранить документ с именем PRN. Windows разрешил такое имя для нового файла?
3) Как решить проблему: «С инета скачиваю файлы, а они в формате .rar и на компе не открываются, не читаются. Что делать?»
Если у Вас есть вопросы по этой теме, напишите их ниже, в комментариях, я отвечу.
Дополнительно:
1. Физические и логические диски
2. Папки и файлы Windows 7
3. Как в папке расположить файлы в нужном порядке
4. 6 форматов графических файлов на сайтах
5. Сказка про Главный файл
Получайте актуальные статьи по компьютерной грамотности прямо на ваш почтовый ящик.
Уже более 3.000 подписчиков
.
Важно: необходимо подтвердить свою подписку! В своей почте откройте письмо для активации и кликните по указанной там ссылке. Если письма нет, проверьте папку Спам.
Я знаю, что «/» является недопустимым в Linux, а в Windows (я думаю) недопустимы следующие «* . » / [ ] : ; |,»
Что еще я упустил?
Мне нужно полное руководство, которое учитывало бы двухбайтовые символы. Ссылки на внешние ресурсы меня также устраивают.
Сначала мне нужно создать каталог в файловой системе, используя имя, которое может содержать запрещенные символы, поэтому я планирую заменить эти символы символами подчеркивания. Затем мне нужно записать этот каталог и его содержимое в zip-файл (используя Java), поэтому любые дополнительные советы относительно имен zip-каталогов будут приняты с благодарностью.
Ответ 1
Давайте будем проще и сначала ответим на вопрос.
Запрещенными для печати символами ASCII являются:
Linux/Unix:
/(прямая косая черта).
Windows:
<(меньше чем).
> (больше чем).
:(двоеточие – иногда работает, но на самом деле это NTFS Alternate Data Streams).
» (двойная кавычка).
/ (прямая косая черта).
(обратная косая черта).
| (вертикальная полоса или труба).
? (вопросительный знак).
* (звездочка).
Непечатаемые символы
Если ваши данные поступают из источника, который допускает непечатаемые символы, то их необходимо проверить.
Linux/Unix:
0 (байт NULL).
Windows:
0-31 (управляющие символы ASCII).
Примечание: Хотя в файловых системах Linux/Unix создание файлов с управляющими символами в имени файла является законным, работа с такими файлами может стать проблемой для пользователей.
Зарезервированные имена файлов
Следующие имена файлов зарезервированы:
Windows:
CON, PRN, AUX, NUL.
COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9.
LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9.
(как сами по себе, так и с произвольными расширениями файлов, например, LPT1.txt).
Другие правила
Windows:
Имена файлов не могут заканчиваться пробелом или точкой.
macOS:
Вы об этом не спрашивали, но на всякий случай: Двоеточие «:» и прямой слэш «/» в зависимости от контекста не разрешены (например, Finder поддерживает слэш, терминал – двоеточие).
Ответ 2
«Исчерпывающее руководство» по запрещенным символам имен файлов не будет работать в Windows, потому что она резервирует имена файлов, а также символы. Да, символы типа «* » ?» и другие запрещены, но существует бесконечное количество имен, состоящих только из допустимых символов, которые запрещены. Например, пробелы и точки являются допустимыми символами имени файла, но имена, состоящие только из этих символов, запрещены.
Windows не различает символы верхнего и нижнего регистров, поэтому вы не можете создать папку с именем «A», если папка с именем «a» уже существует. Хуже того, такие, казалось бы, разрешенные имена, как «PRN» или «CON», и многие другие, зарезервированы и не разрешены. Windows также имеет несколько ограничений по длине; имя файла, допустимое в одной папке, может стать недействительным при перемещении в другую папку. Правила именования файлов и папок приведены в документации Microsoft.
В общем случае нельзя использовать пользовательский текст для создания имен каталогов Windows. Если вы хотите разрешить пользователям называть все, что они хотят, вы должны создавать безопасные имена, такие как A, AB, A2 и т. д., хранить созданные пользователем имена и их эквиваленты путей в файле данных приложения и выполнять сопоставление путей в вашем приложении.
Если вам обязательно нужно разрешить пользовательские имена папок, единственный способ определить, являются ли они недействительными, – это ловить исключения и считать, что имя недействительно. Даже это чревато опасностью, поскольку исключения, возникающие при отказе в доступе, отключении дисков и отсутствии места на диске, пересекаются с исключениями, которые могут возникать при недействительных именах.
Ответ 3
В оболочках Unix вы можете заключить в одинарные кавычки почти все символы. За исключением одинарной кавычки, и вы не можете выразить управляющие символы, потому что «» не расширяется. Доступ к самой одинарной кавычке из строки в кавычках возможен, потому что вы можете объединять строки с одинарными и двойными кавычками, например так, «’I»»»m»», который может быть использован для доступа к файлу под названием «I’m» (здесь также возможна двойная кавычка).
Таким образом, вам следует избегать всех управляющих символов, потому что их слишком сложно вводить в оболочке. Остальное возможно, особенно файлы, начинающиеся с тире, потому что большинство команд считывают их как опции, если только перед ними не стоят два тире «—«, или вы не указываете их с помощью «./», что также скрывает начальное «-«.
Если вы хотите быть вежливым, не используйте ни один из символов, которые оболочка и типичные команды используют как синтаксические элементы, иногда зависящие от позиции, например, вы можете использовать «-«, но не как первый символ; то же самое с «.», вы можете использовать его как первый символ, только когда вы имеете в виду («скрытый файл»). Когда вы имеете в виду, ваши имена файлов представляют собой управляющие последовательности VT100.
Ответ 4
Лучшее предложение, которое я смог придумать, – позволить пользователю называть файл так, как ему нравится. Используя обработчик ошибок, когда приложение пытается сохранить файл, перехватывайте любые исключения, предполагая, что виновато имя файла (очевидно, убедившись, что путь сохранения также в порядке), и предлагайте пользователю задать новое имя файла. Для достижения наилучших результатов поместите эту процедуру проверки в цикл, который продолжается до тех пор, пока пользователь не получит правильное имя или не отменит операцию. Это работает лучше всего (по крайней мере, в VBA).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
https://ru.wikipedia.org/wiki/%D0%98%D0%BC%D1%8F_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0 | |
<pre> | |
Запрещённые символы | |
Многие операционные системы запрещают использование некоторых служебных символов. | |
Запрещённые символы Windows (в различных версиях): | |
— разделитель подкаталогов | |
/ — разделитель ключей командного интерпретатора | |
: — отделяет букву диска или имя альтернативного потока данных | |
* — заменяющий символ (маска «любое количество любых символов») | |
? — заменяющий символ (маска «один любой символ») | |
» — используется для указания путей, содержащих пробелы | |
< — перенаправление ввода | |
> — перенаправление вывода | |
| — обозначает конвейер | |
+ — (в различных версиях) конкатенация | |
Частично запрещённые символы Windows: | |
пробел — не допускается в конце имени файла; | |
. — не допускается в конце имени файла кроме имён каталогов, состоящих из точек и доступа с префиксом «\?». | |
Символы, вызывающие проблемы в широко распространённых компонентах: | |
% — в Windows используется для подстановки переменных окружения в интерпретаторе команд, вызывает проблемы при открытии файла через стандартный диалог открытия файла; | |
! — в Windows используется для подстановки переменных окружения в интерпретаторе команд, в bash используется для доступа к истории[1]; | |
@ — в интерпретаторах команд вызывает срабатывание функций, предназначенных для почты. | |
В именах файлов UNIX и некоторых UNIX-подобных ОС запрещен слеш (/) — разделитель подкаталогов — и символ конца C-строки (). Перечисленные выше символы (кроме слеша) использовать можно, но из соображений совместимости их лучше избегать. | |
</pre> |
Имена папок и файлов
Обычная ситуация — Вы создаете папку или файл и называете как Вам хотелось бы. Вроде бы ничего особенного, но порой появляются сообщения о неверном или неправильном имени папки или файла и о содержании недопустимых символов в ней. Обычное такое бывает когда Вы вставляете скопированный текст в поле имени папки, а он содержит всякие символы. Вот сейчас и рассмотрим какие символы и какие ограничения выставляет Windows на имя папки и файла.
На заметку: быстро переименовать папку/файл можно выделив и нажав кнопку F2.
Первое ограничение — это на количество знаков в имени папки или файла. Имя не должно превышать 255 символов . В принципе это нормальное решение, ведь столько символов вполне могут вместить нормальное имя. Вы же не будете в него целый стих записывать, к примеру.
Второе ограничение — это использование запрещенных символов .
Знаки меньше/больше , двоеточие : , двойные кавычки ” , слеш / и обратный слеш , вертикальная черта | , знак вопроса ? , звездочка * , кроме этого имя не может заканчиваться точкой или пробелом .
Если Вы использовали в назначении имени один из этих 9ти знаков, то система выдаст сообщение:
Почему нельзя? Да потому что это служебные знаки системы и зарезервированы для выполнения специальных функций:
меньше/больше — перенаправление вывода,
: — отделяет букву диска или имя альтернативного потока данных,
» — используется для указания путей, содержащих пробелы,
— разделитель подкаталогов,
/ — разделитель ключей командного интерпретатора,
| — обозначение конвейера,
? — заменяющий символ (маска «один любой символ»).
Кроме всего этого ограничение есть ещё и на определенные имена такие как: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 .
Это тоже служебные имена и система их использует для своих целей.
Немного уточню насчёт символа точки. В имени папок можно использовать сколько угодно точек, но если Вы создаете имя файла, то у него должно быть расширение. И расширением будет считаться то, что будет идти после последней точки.
Как в Windows 10 включить поддержку пути к файлам длиной более 260 символов
Благодаря Anniversary Update для Windows 10 вы можете, наконец, отказаться от ограничения максимального пути в 260 символов в Windows. Вам просто нужно внести небольшие изменения в реестр Windows или групповую политику. Далее рассказано, как это сделать.
До Windows 95, операционная система Windows допускала только имена файлов длиной восемь символов с расширением файла из трёх символов, обычно называемое именем файла 8.3. Windows 95 отказалась от этого, чтобы разрешить длинные имена файлов, но по-прежнему ограничивала максимальную длину пути (которая включает полный путь к папке и имя файла) не более 260 символами. Этот предел был установлен тогда и действует до сих пор. Если вы когда-либо сталкивались с этим ограничением, скорее всего, это было, когда вы пытались скопировать папки с глубоким вложением в другие папки, например, при копировании содержимого жёсткого диска в папку на другом диске. В Windows 10 Anniversary Update наконец добавлена возможность отказаться от этой максимальной длины пути.
Есть одна оговорка. Этот новый параметр не обязательно будет работать с каждым приложением, но он будет работать с большинством. В частности, любые современные приложения должны быть в порядке, как и все 64-битные приложения. Более старые 32-битные приложения должны быть подготовлены специальным образом, что на самом деле означает, что разработчик указал в файле манифеста приложения, что приложение поддерживает более длинные пути. У большинства популярных 32-битных приложений проблем не должно быть. Тем не менее вы ничем не рискуете если выполните эту настройку. Если приложение не работает, единственное, что произойдёт, это то, что оно не сможет открывать или сохранять файлы, сохранённые в местах, где полный путь превышает 260 символов.
Windows Home: как снять ограничение в 260 символов на путь имени файла
Если у вас версия Windows Home, вам придётся отредактировать реестр Windows, чтобы внести эти изменения. Вы также можете сделать это таким образом, если у вас Windows Pro или Enterprise, но вы чувствуете себя более комфортно, работая в реестре, чем редактор групповой политики. (Однако, если у вас есть Pro или Enterprise, мы рекомендуем использовать более простой редактор групповой политики, как описано в следующем разделе.)
Стандартное предупреждение: редактор реестра является мощным инструментом, и неправильное его использование может сделать вашу систему нестабильной или даже неработоспособной. Это довольно простая настройка, и пока вы придерживаетесь инструкции, у вас не должно быть никаких проблем. Тем не менее если вы никогда не работали с реестром ОС раньше, изучите более подробно о том, как использовать редактор реестра, прежде чем приступить к работе. И обязательно сделайте резервную копию реестра (и вашего компьютера!) перед внесением изменений.
Чтобы начать, откройте редактор реестра, нажав «Пуск» и напечатав «regedit». Нажмите Enter, чтобы открыть редактор реестра и дать ему разрешение вносить изменения в свой компьютер.
В редакторе реестра используйте левую боковую панель, чтобы перейти к следующему ключу:
Справа найдите значение с именем LongPathsEnabled и дважды щёлкните его. Если вы не видите значения в списке, вам нужно создать его, щёлкнув правой кнопкой мыши по ключу FileSystem, выбрав New > DWORD (32-bit) Value, а затем присвоив имя новому значению LongPathsEnabled.
В окне свойств значения измените значение с 0 на 1 в поле «Значение» и нажмите кнопку «ОК».
Теперь вы можете закрыть редактор реестра и перезагрузить компьютер (или выйти из своей учётной записи и войти снова). Если вы хотите отменить изменения, просто вернитесь к значению LongPathsEnabled и установите его значение от 1 до 0.
Включите поддержку длинных имён файлов одним кликом
Если вы не хотите погружаться в Реестр самостоятельно, мы создали два файла с настройками реестра, которые вы можете использовать. Один хак удаляет ограничение пути в 260 символов, а другой хак восстанавливает ограничение по умолчанию. Оба сжаты в следующий файл ZIP. Дважды щёлкните тот, который вы хотите использовать, кликните по подсказкам и перезагрузите компьютер.
Эти хаки на самом деле являются просто ключом FileSystem, урезанным до значения LongPathsEnabled, которое мы описали выше, а затем экспортированным в файл .REG. Запуск хака «Remove 260 Character Path Limit.reg» устанавливает значение LongPathsEnabled равным 1. Запуск хака «Restore 260 Character Path Limit (Default).reg» устанавливает значение обратно в 0.
Windows Pro или Enterprise: как снять ограничение в 260 символов на путь имени файла с помощью редактора локальной групповой политики
Если вы используете Windows 10 Pro или Enterprise, самый простой способ отменить ограничение на длину пути файла в 260 символов это использовать редактор локальной групповой политики. Это довольно мощный инструмент, поэтому, если вы никогда не использовали его раньше, стоит потратить некоторое время на изучение того, что он может делать. Кроме того, если вы находитесь в сети компании, сделайте всем одолжение и сначала проконсультируйтесь с вашим администратором. Если ваш рабочий компьютер является частью домена, вполне вероятно, что он является частью групповой политики домена, которая в любом случае заменит локальную групповую политику.
В Windows 10 Pro или Enterprise нажмите «Пуск», введите gpedit.msc и нажмите Enter.
В редакторе локальной групповой политики в левой панели перейдите к Конфигурация компьютера > Административные шаблоны > Система > Файловая система. Справа найдите элемент «Включить длинные пути Win32» и дважды щёлкните его.
В открывшемся окне свойств выберите параметр «Включено» и нажмите «ОК».
Теперь вы можете выйти из редактора локальной групповой политики и перезагрузить компьютер (или выйти и снова войти), чтобы изменения вступили в силу. Если в любой момент вы хотите отменить изменения, просто следуйте той же процедуре и установите для этого параметра значение «Отключено» или «Не настроено».
Максимальный предел пути не является чем-то важным, что обязательно нужно изменить, но для некоторых людей это, безусловно, это ограничение было довольно досадным. Windows 10 наконец-то добавила возможность убрать это ограничение. Вам достаточно просто внести небольшие и быстрые изменения в реестр или групповую политику, чтобы это произошло.
Имя файла не должно содержать следующих знаков как разрешить
Если вы загружаете на сайт файлы (документы, изображения, архивы и пр.), и подразумевается, что доступ к этим файлам будет публичный, а не ограниченный списком избранных товарищей, нужно иметь в виду, что различные многочисленные пользователи сети интернет используют разные устройства ( настольные компьютеры, ноутбуки, планшеты, смартфоны, . ) и разные операционные системы (Mac, PC, Linux, . ).
И чтобы у всех ваши файлы адекватно открывались, отображались и скачивались, нужно перестраховаться и избегать использования в названиях файлов и каталогах сайта запрещенных символов.
Использование правильных названий для папок и файлов очень важно для web, особенно — для загружаемых файлов, таких как PDF-файлы, документы MS Word, электронные таблицы MS Excel и др.
Создавая и формируя любой документ, мы не имеем ограничений по используемым символам внутри него и можем писать в нем любые, даже запрещенные символы. Но для сохранения файла нужно присваивать ему имя с учетом некоторых правил и ограничений интернета.
Не используйте следующие запрещенные символы в названиях директорий и файлов:
# — pound (решетка) | < — left angle bracket (знак «меньше») | $ — dollar sign (доллар) | + — plus sign (плюс) |
% — percent (процент) | > — right angle bracket (знак «больше») | ! — exclamation point (восклицательный знак) | ` — backtick (обратная кавычка) |
& — ampersand (амперсенд) | * — asterisk (звездочка) | ‘ — single quotes (одинарные кавычки) | | — pipe (вертикальная черта) |
— left bracket (левая фигурная скобка) | ? — question mark (вопросительный знак) | “ — double quotes (двойные кавычки) | = — equal sign (равно) |
> — right bracket (правая фигурная скобка) | / — forward slash (прямой слеш) | : — colon (двоеточие) | |
— back slash (обратный слеш) | — blank spaces (пробел) | @ — at sign (собачка) |
Не каждый сайт или сервер имеет механизм проверки файлов и, зачастую, даже если имя файла содержит запрещенные символы, вы все равно сможете загрузить его на сервер. Но вот скачать его, скорее всего, никто не сможет, особенно, через web-интерфейс.
Рассмотрим ситуацию, в которой пользователь загрузил на сайт PDF-файл, содержащий в названии символ «Решетка» (pound) — #. Сервер имеет операционную систему Linux. Поведение сервера при наличии таких символов в именах файлов будет неадекватным.
В этом случае апач считает что URL — это все, что находится перед знаком «Решетка», а все что после него — это якорь на HTML-странице, т.е. ссылка на конкретное место в HTML-документе. Соответственно, он не распознает его, как файл и не отдает пользователю.
Так как на большинстве сайтов используется автоматический Загрузчик файлов, который без лишних вопросов загружает то, что пользователь выбирает на своем компьютере. Поведение апача верное, но он не может отличить файл от html, для него всё является ссылкой, поэтому он так и будет обрабатывать.
Таким образом, нужно всего лишь не использовать символы запрещенные для имен и папок на сайте. Это самое простое в реализации.
-
Понятие файла, полное имя файла. Правила записи имени файлов.
Файловая система
– правила, по которым организуются
файлы, сохраняется информация о файлах.
Файл
Файл — основное
понятие ОС. Файл с точки зрения ОС –
информационная единица.
Файл
— это совокупность данных, объединенных
по одному признаку, хранящихся на
некотором носителе информации под одним
именем.
Файл
– массив логически связанных данных,
занимающий место на долговременном
запоминающем устройстве.
Файл
– поименованная область внешней памяти
для хранения программ и данных.
В файлах могут
храниться тексты, данные, графическая
информация, программы и каталоги,
содержащие списки других файлов.
Типы файлов:
-
текстовые –
предназначены для чтения человеком; -
двоичные — файлы
не являющиеся текстовыми.
Операции над
файлами:
-
поиск файлов;
-
чтение информации
из файла и запись информации в файл; -
создание,
редактирование и удаление файлов; -
копирование,
переименование и перенос файлов; -
создание записи
о файле в каталоге.
Имя файла —
[ИМЯ].[РАСШИРЕНИЕ]
Информация о типе
данных в файле отображается в расширении
имени файла. Оно состоит из последовательности
не более 3 букв или цифр. Расширение
отделяется от имени файла точкой,
описывает содержание файла, поэтому
его использование очень удобно, но
необязательно.
Некоторые программы
сами устанавливают расширение имени
файла, по расширению мы можем узнать,
какая программа создала файл.
Правила записи
имен файлов в ОС MS
DOS
-
имя файла
— может содержать не более 8 символов; -
не принято
использовать буквы русского алфавита;
-
большие и маленькие
латинские буквы являются эквивалентными; -
использование
символов, отличных от букв и цифр не
рекомендуется; -
нельзя использовать
пробелы, т.к. при переносе файлов на
другие компьютеры, работа с ними может
оказаться невозможной.
Правила записи
имен файлов в ОС Windows
-
имя файла
может содержать до 255 символов; -
суммарная длина
полного имени файла не может превышать
260 символов;
-
большие и маленькие
буквы являются эквивалентными;
-
можно использовать
несколько точек в имени файла, расширение
определяется по символам, следующим
за последней точкой в имени файла; -
запрещено
использование символов
/ : * ? « < > |
-
разрешено
использовать пробелы, но не рекомендуется.
-
Каталоги. Дерево каталогов.
Для хранения данных
в большинстве ОС принята иерархическая
структура (дерево
данных). В
основе структуры лежит диск. (Например:
А: В: С: D:).
На дисках создаются каталоги.
В ОС Windows
каталогам соответствуют папки.
Каждый элемент
определяется путем, который к нему
ведет.
В файловой системе
существует понятие кластера
– информации минимального размера, с
которым данная файловая система может
работать.
В MS-DOS на диске
содержатся списки файлов, называемые
каталогами.
Все каталоги
являются файлами специального вида.
Каждый элемент
каталога
содержит имя файла, расширение, размер,
информацию о доступности файла для
пользователя и номера кластеров, с
которых начинаются файлы. Каждый файл
занимает целое число кластеров.
Каталог
— специально отведенное место на диске,
в котором хранятся имена файлов, размер,
время последней работы с ними, информация
о доступности файла и номер кластера,
с которого начинается файл.
На каждом магнитном
диске имеется один главный каталог —
корневой
каталог. В
этом каталоге регистрируются подкаталоги
и файлы.
Каждый каталог
имеет имя и может быть зарегистрирован
в другом каталоге. Если каталог Х
зарегистрирован в каталоге У, то говорят,
что каталог Х – подкаталог
(вложенный
каталог)
каталога У.
Расширения каталогам
писать не принято.
А11
А1 ———— А12
КОРНЕВОЙ А13
А—————А2
КАТАЛОГ А311
А31————А312
А3 А313
А32
1 уровень 2 уровень 3 уровень
Каталог, с которым
в данный момент работаем, называется
текущим
каталогом.
Путь
— последовательность из имен каталогов,
разделенных символом «/».
Пример: указать
путь к файлу А313, если мы находимся в
корневом каталоге.
Дисковод носит
имя А:, винчестер — С:.
Текущий дисковод
— дисковод, с которым в данный момент мы
работаем.
У каждого файла
есть полное
имя которое
имеет вид:
Полное имя
— [дисковод:][путь/][имя-файла].
В ОС DOS можно
разделить жесткий диск на несколько
частей и работать с ними, как с отдельными
дисками. Эти части называются логическими
дисками или
разделами жесткого диска. Каждый
логический диск имеет имя, по которому
к нему можно обращаться.
При манипуляциях
с файлами нарастает уровень фрагментации
диска (файл
оказывается расщеплен на множество
цепочек кластеров, расположенных в
разных местах диска). Это приводит к
следующим последствиям: повышается
вероятность разрушения целостности
файла; затрудняется восстановление
файла после случайного удаления;
снижается производительность при
считывании; ускоряется износ дисковода.
Рекомендуется проверять диск и устранять
фрагментацию файлов. Программы
оптимизаторы файлов – переписывают
файлы так, чтобы кластер следовал за
кластером (например SpeedDisk).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
постов
Нас всегда учили — не использовать в названии файла точку, пробел, и, конечно, использовать только латинские буквы. И тут вдруг я в одном учебнике встречаю, мол, используйте хоть латиницу, хоть кириллицу, хоть пробел, главное не задействуйте зарезервированные символы (типа звездочки, знак вопроса, слэши ит.д.). Я удивилась, полезла смотреть на просторах Интернета — и действительно, многие материалы утверждают, что от символа пробела, или от кириллицы в названии файла особой беды не будет.
Кто же прав? Есть какие-то стандарты, весомые аргументы и примеры, чтобы как говорится, «с цифрами в руках» доказать людям, что самое разумное в Windows ограничится в названии файла буквами латиницей, 0-9, не пытаться использовать ту же точку, после которой символы могут быть восприняты как расширение файла?
Или может быть, такие требования были когда-то в глубокой древности, а сейчас файловые системы и операционные системы настолько далеко ушли, что ограничения на использование некоторых символов не являются критичными?
постов
ну так сейчас все имена хранятся в юникоде, поэтому в плане выбора имени файла в винде действуют только ограничения на длину имени в 256 символов, и на использование зарезервированных символов.
https://msdn.microsoft.com/en-us/lib…ng_conventions
постов
Цитата: Кто же прав? Есть какие-то стандарты, весомые аргументы и примеры, чтобы как говорится, «с цифрами в руках» доказать людям, что самое разумное в Windows ограничится в названии файла буквами латиницей, 0-9, не пытаться использовать ту же точку, после которой символы могут быть восприняты как расширение файла? Проблемы с кириллицей ушли вроде со времен 98-ой винды. Расширением считается все что после последней точки (одно время были даже такие вирусы с невероятно длинным названием, которое обрезалось по какой-то точке, типа это Jpg, а дальше было расширение exe, пользователь думал картинка, а система понимала как файл на исполнение). Единственным ограничением на кирилицу может стать обмен файлами с каким-нибудь экзотическим линуксом с не менее экзотическим хозяином того линукса. Счас уже все поголовно переходят на Юникод (файловые системы ставят по дефолту вроде), потому кирилица всем пофиг, также как и китайские иероглифы в принципе. Ограничения имеются по-прежнему на спецсимволы — это задание шаблонов (*, ?) и направление ввода-вывода (><|), а также создание параметров программ (- и /).
постов
Цитата: в винде действуют только ограничения на длину имени в 256 символов Уже нет. Только в качестве рекомендаций.
постов
Причем нельзя именно анси их варианты, а вот, например, юникодовский ? можно
постов
Цитата: Причем нельзя именно анси их варианты, а вот, например, юникодовский ? можно быть не может.
постов
Цитата: Сообщение от f.hump быть не может. Скачайте вложение
постов
Использовать можно, но в некоторых случаях нежелательно. Например, я никогда не буду на веб-сервере размещать файлы с кириллическими символами в имени. Даже пробелы стараюсь исключить, хотя с ними проблем не будет, просто не нравится, когда в адресной строке появляются %20.
постов
Цитата: не пытаться использовать ту же точку, после которой символы могут быть восприняты как расширение файла Ну это разве что какая-то кривая самодельная функция определения расширения, вряд ли много где такое есть. Да и вообще расширение мало чему нужно, кроме винды для определения чем запускать, фильтра в диалогах выбора файла и т.п.
Во многих именах .NET dll (от MS в том числе) есть точки.
Про не латиницу аналогично, проблемы могут возникнуть с неюникодовскими программами (которые вполне можно встретить).
постов
Цитата: Сообщение от Arigato Например, я никогда не буду на веб-сервере размещать файлы с кириллическими символами в имени. Это от неумения работать с кодировками и непонимания сути кодировок вообще.
постов
Пробелы и точки можно было использовать ещё во времена DOS.
У разных ОС могут быть разные дозволения.
И кстати ж Винда сама сообщает какие символы нельзя:
постов
Цитата: Сообщение от Blondy Нас всегда учили — не использовать в названии файла точку, пробел, и, конечно, использовать только латинские буквы. И тут вдруг я в одном учебнике встречаю, мол, используйте хоть латиницу, хоть кириллицу, хоть пробел, главное не задействуйте зарезервированные символы (типа звездочки, знак вопроса, слэши ит.д.). Я удивилась, полезла смотреть на просторах Интернета — и действительно, многие материалы утверждают, что от символа пробела, или от кириллицы в названии файла особой беды не будет.
Кто же прав? Есть какие-то стандарты, весомые аргументы и примеры, чтобы как говорится, «с цифрами в руках» доказать людям, что самое разумное в Windows ограничится в названии файла буквами латиницей, 0-9, не пытаться использовать ту же точку, после которой символы могут быть восприняты как расширение файла?
Или может быть, такие требования были когда-то в глубокой древности, а сейчас файловые системы и операционные системы настолько далеко ушли, что ограничения на использование некоторых символов не являются критичными? Blondy, действительно, парадоксально но факт. Сейчас и кирилицу можно использовать на серверах. Я, правда, этим не пользуюсь, но уже достаточно часто с таким сталкиваюсь.
постов
Не рекомендовал бы использовать пробелы в именах. Возьмём linux, допустим пишем bash скрипт:
Код: declare -a res=($(find ~ -name name -execdir pwd ;)) Заполняем массив путями, в которых содержится name. Если в пути присутствует пробел, то путь будет разбит на две части и займет два элемента массива. Можно заставить работать команду правильно (в разных частях скрипта устанавливать необходимое значение IFS), но я просто не использую пробелы, так как в норме их не должно там быть.
Меня могут спросить: а при чём здесь Linux? Отвечаю: если не ошибаюсь, в win скриптах это тоже актуально (при запуске в командной строке .exe из Program Files приходится брать в кавычки). От спец символов тоже лучше отказаться (используются для шаблонов globbing).
Одного не понимаю: зачем нужно было вставлять пробел в «Program Files»?
постов
Цитата: Заполняем массив путями, в которых содержится name. Если в пути присутствует пробел, то путь будет разбит на две части и займет два элемента массива. Пупец. Вы программу не правильно составили, Вам пробел виноват стал.
Цитата: при запуске в командной строке .exe из Program Files приходится брать в кавычки И в чем проблема? Для этого там кавычки и придуманы.
Цитата: зачем нужно было вставлять пробел в «Program Files»? Чтобы выглядело человечней. Нет, пусть лучше в шестнадцатеричной системе папки будем записывать — так программистам работать удобней.
постов
Цитата: Сообщение от Utkin Пупец. Вы программу не правильно составили, Вам пробел виноват стал. Подчёркиваю, что знаю как правильно искать пути с пробелами (специально написал прр IFS). Я не считаю что пробелы в именах норма (я бы их вообще запретил), word splitting по пробелам — норма.
постов
Цитата: Я не считаю что пробелы в именах норма Но вообще-то это норма.
постов
Цитата: Сообщение от 220Volt Подчёркиваю, что знаю как правильно искать пути с пробелами (специально написал прр IFS). Я не считаю что пробелы в именах норма (я бы их вообще запретил), word splitting по пробелам — норма. Отсутствие пробелов в именах сайтов, это не упущение, а сложифшийся факт. Когда разрабатывался протокол TCP, стал вопрос о том, что человек может вставить не один, а несколько пробелов. Что-бы не морочит себе голову, решили, вообще их не использовать. Сейчас это делать можно, но я по-старинке, предпочитаю не пользоваться этими новшествами.
постов
Цитата: Сообщение от Utkin Но вообще-то это норма. В win может и норма, а в linux нет.
постов
Цитата: Сообщение от 220Volt В win может и норма, а в linux нет. Моё упущение. Не знаю linux. Возможно, так оно и есть. Утверждать не берусь.
постов
Я не знаю на каком Вы линуксе, в современных дистрах пробелы также обрабатываются. В том же ntfs/hpfs например. Используются такие же кавычки как и в винде.
Вот пример:
Цитата: ls «/home/user/Мои документы/»
ls ‘/home/user/Мои документы/’
ls /home/user/Мои документы/
ls «/home/user/Файл с «двойными кавычками» в названии»
ls ‘/home/user/Файл с «двойными кавычками» в названии’
ls /home/user/Файл с «двойными кавычками» в названии Цитата: В win может и норма, а в linux нет. Когда работал в линуксе также давал документам полноценные имена с пробелами и не испытывал от этого никаких проблем.
постов
Цитата: Сообщение от Utkin Я не знаю на каком Вы линуксе, в современных дистрах пробелы также обрабатываются. В том же ntfs/hpfs например. Используются такие же кавычки как и в винде.
Вот пример:
Когда работал в линуксе также давал документам полноценные имена с пробелами и не испытывал от этого никаких проблем. Разве я писал, что пробелы в путях линукс не может обрабатывать? У меня debian, не видел ни одного каталога или файла с пробелом, ни раз встречал рекомендации избегать пробелы в путях, согласен с этими рекомендациями. Понять это в полной мере можно после опыта написания shell скриптов (пути с пробелами можно обрабатывать, но не удобно). Если кто-то хочет создать себе лишние проблемы, то пусть использует пробелы. Мои_документы ничуть не хуже.
постов
Цитата: Понять это в полной мере можно после опыта написания shell скриптов (пути с пробелами можно обрабатывать, но не удобно). Их и в винде обрабатывать не удобно . Потому что нет ни снипетов ни полноценной библиотеки скриптов. Каждый уважающий себя админ, должен всегда все писать с нуля на коленке и материть пробелы в путях файлов. А проблема высосана из пальца. То что в Дебиане нет пробелов тоже просто — они очень консервативны и раньше в путях не было пробелов, то и счас по старинке те же пути и соответственно пробелов нет. И вообще там есть даже стандарт на каталоги в корне точки монтирования, кто-то придерживается, кто-то нет.
постов
Ничего не из пальца. Это как в C++ разрешить ; в именах, в трезвую голову это не придёт. Для подкрепления своей позиции процитирую документация Mingw:
Цитата: MinGW may have problems with paths containing spaces, and if not, usually other programs used with MinGW will experience problems with such paths. Thus, we strongly recommend that you do not install MinGW in any location with spaces in the path name reference. You should avoid installing into any directory or subdirectory having names like «Program Files» or «My Documents», etc.
постов
Я в посте #3 специально про Вас написал:
Цитата: Единственным ограничением на кирилицу может стать обмен файлами с каким-нибудь экзотическим линуксом с не менее экзотическим хозяином того линукса. Про MiniGW это проблемы MiniGW. Если мне разрешено создавать пробелы, я буду их создавать так как мне это удобно.
постов
Цитата: Сообщение от Utkin Я в посте #3 специально про Вас написал:
Про MiniGW это проблемы MiniGW. Если мне разрешено создавать пробелы, я буду их создавать так как мне это удобно. Согласен. И чё за тема? Я хочу, что-бы всё было по моему, и не хочу обучаться. Финиш.
постов
Цитата: Сообщение от 220Volt Это как в C++ разрешить ; в именах Сравнение некорректно, поскольку в С++ ; несет семантическую нагрузку, что больше похоже на slashbackslash в файловых системах а их там никто не разрешает, ни в винде, ни в линуксе.
А в винде, если мешают пробелы, всегда можно воспользоватья короткими именами.
А так я согласен с Utkin — если кому-то мешают пробелы — это всецело его проблема. Меня вот бесят файловые системы которые различают строчные и прописные буквы…
постов
Цитата: Сообщение от 220Volt Разве я писал, что пробелы в путях линукс не может обрабатывать? У меня debian, не видел ни одного каталога или файла с пробелом, ни раз встречал рекомендации избегать пробелы в путях, согласен с этими рекомендациями. Понять это в полной мере можно после опыта написания shell скриптов (пути с пробелами можно обрабатывать, но не удобно). Если кто-то хочет создать себе лишние проблемы, то пусть использует пробелы. Мои_документы ничуть не хуже. Согласен абсолютно. Плюс, данный подход с пробелами подталкивает к написанию ну очень длинных и неудобоваримых имён.
Цитата: Меня вот бесят файловые системы которые различают строчные и прописные буквы… Следующим этапом будет раздражение по поводу файловых систем, которые отличают одну цифру от другой. А чего, цифра и цифра.
постов
Цитата: Плюс, данный подход с пробелами подталкивает к написанию ну очень длинных и неудобоваримых имён. Так Вы от них никуда не денетесь. принесут документ с винды и все, накрылась империя зла с короткими именами . Тут не огораживаться надо, а наоборот увеличивать возможности. А не принесут так почтой отправят и на поток поставят. Придет от партнера и/или учредителя. Тут как раз самое то — автоматизация почты, сортировка по папочкам/специалистам и прочая рутина — сам Торвальдс велел. А не судьба, потому что админ из чувства вредности и ностальгии помнит времена когда имена были английские без пробелов и не более 8 символов.
постов
Цитата: Сообщение от Utkin Так Вы от них никуда не денетесь. принесут документ с винды и все, накрылась империя зла с короткими именами . Тут не огораживаться надо, а наоборот увеличивать возможности. Так никто же не говорит, что не надо учитывать этот стандарт. Вопросы вызывает сам стандарт. Хотя, на самом деле, это всё мелочи, по сравнению с настоящим злом вроде интеграции эппловского core data в эппловский же icloud. Умеют люди делать противоречивые вещи, причем, в пределах одной и той же корпорации.
постов
Цитата: Сообщение от Vapaamies Это от неумения работать с кодировками и непонимания сути кодировок вообще. Ну да, как же иначе
постов
Цитата: Сообщение от Arigato Ну да, как же иначе Ничё, научится. Какие его годы. Мы ведь тоже не родились программёрами. Учились, старались, пыхтели. Вот будет стараться и пыхтеть, будет толк. Не захочет, весь толк и выйдет. Программёрское братство может и обеднеет, но не сильно. Отряд не заметил потери бойца…
постов
Всем спасибо за ответы!
Просто я почему спрашиваю — в сентябре придет очередная группа на курсы, в возрасте 50+, которая в самом хорошем случае умеет новости в Интернете читать и худо-бедно электронной почтой пользоваться. И которым собственно фиолетово — есть ли пробелы в названии файла, на латинице назван он или использует в своем названии буквенные символы кириллицы или даже буквы скандинавской группы языков (это всякие зачеркнутые «о» и «а» с точкой наверху). Вот у меня как у преподавателя встала дилемма — ведь проще сразу научится давать файлам грамотные имена, чем научится так, как человеку проще и он привык, а потом он как пошлет документ партнерам или в какую нибудь организацию, а он как не откроется…. А потом -» ой, а нам преподаватель ничего по этому поводу не говорил» или «а преподаватель сказал, что можно».
Я была свидетелем того, как некоторые студенты с других факультетов называли свои презентушки и работы как Бог на душу положит — с пробелами, с использованием не латинских букв, а потом бегали как угорелые по университету и дергали людей с инфотехнологии — мол, у них экзамен/защита работы, а у них файл не открывается, потому как имя дано некорректно.
постов
Цитата: Просто я почему спрашиваю — в сентябре придет очередная группа на курсы, в возрасте 50+, которая в самом хорошем случае умеет новости в Интернете читать и худо-бедно электронной почтой пользоваться. И которым собственно фиолетово — есть ли пробелы в названии файла, на латинице назван он или использует в своем названии буквенные символы кириллицы или даже буквы скандинавской группы языков (это всякие зачеркнутые «о» и «а» с точкой наверху). Вот у меня как у преподавателя встала дилемма — ведь проще сразу научится давать файлам грамотные имена, чем научится так, как человеку проще и он привык, а потом он как пошлет документ партнерам или в какую нибудь организацию, а он как не откроется…. А потом -» ой, а нам преподаватель ничего по этому поводу не говорил» или «а преподаватель сказал, что можно». Ну, от таких проблем избавиться, кстати, несложно: достаточно грохнуть с юзерской машины все локали, кроме английской. С пробелами будет посложнее, но тоже решаемо. Пару раз принесут с кривыми названиями, которые не читаются — опыт будет на всю жизнь. А так — говори, не говори, толку мало будет. Тем более, в подобной возрастной категории.
постов
Цитата: , а у них файл не открывается, потому как имя дано некорректно. а.. Так это уже другой вопрос-то! Что и в чём не открывается?
Есть программы не умеющие работать (или криво работающие) с юникодом.
Например мой любимый Viewer не открывает фотографии, если в имени есть хитроюникодные символы. Но не потому что файл так нельзя называть, а программу сделали с багом.
постов
Цитата: Сообщение от Blondy А потом -» ой, а нам преподаватель ничего по этому поводу не говорил» или «а преподаватель сказал, что можно».
Я была свидетелем того, как некоторые студенты с других факультетов называли свои презентушки и работы как Бог на душу положит — с пробелами, с использованием не латинских букв, а потом бегали как угорелые по университету и дергали людей с инфотехнологии — мол, у них экзамен/защита работы, а у них файл не открывается, потому как имя дано некорректно. Ха-ха-ха-ха-ха! Blondy, ну умеш рассмешить! Молодец! ++. Особенно убила фраза — «а преподаватель сказал, что можно». Я патсталом!
постов
Цитата: Сообщение от ResourceSpace а.. Так это уже другой вопрос-то! Что и в чём не открывается?
Есть программы не умеющие работать (или криво работающие) с юникодом.
Например мой любимый Viewer не открывает фотографии, если в имени есть хитроюникодные символы. Но не потому что файл так нельзя называть, а программу сделали с багом. Ни одна программа, подразумевающая ввод пользовательских данных в виде каких-либо предзаготовок, далеко от осевых локалей не убежит.
постов
Цитата: а у них файл не открывается, потому как имя дано некорректно. Это особенности программ уже. У меня из последних тупняков MySql Workbench не сохраняет в русской папке, сразу вылет (при этом сохраняемый файл, если существовал до этого, бесследно пропадает). По-русски имя можно, а папку куда сохраняется нельзя. Файловая система здесь не причем. Но короткие или там временные файлы я вообще называю 1.расширение Так быстрей и везде 100 процентов откроется.
постов
Цитата: Сообщение от Utkin 1.расширение Так быстрей и везде 100 процентов откроется. Это конечно вариант, только когда таких файлов не много. Когда их больше 50-и, уже начинаются проблемы. Когда их 100 и более, начинаешь задумываться о придании им, хоть какуб-то осмысленность.
постов
Цитата: Сообщение от crazy horse Ни одна программа, подразумевающая ввод пользовательских данных в виде каких-либо предзаготовок, далеко от осевых локалей не убежит. Угу, именно поэтом у меня в 10ке не запускаются программы и программы не находят свои файлы, если в путях или именах есть что-нибудь восточное… хотя в 7/8ках все работало
постов
Вот и шо Либо каждый раз переключай системную локаль и перезагружайсо, либо имей секас со всякими эмуляторами.
постов
crazy horse, я как-то не очень понял что вы имели ввиду. Я говорил про:Есть файл «Photoⁿ.jpg»; Тыкаем в него мышкой — открывается программой XnView, но вылезает ошибка «Файл <Photo?.jpg> не найден!»; При открытии в любом другом Viewer’е (хотя бы в том же «Просмотр фотографий Windows») — всё в порядке; Ситуация с кириллицей (MSSQLSMS) или пробелами в других программах туда же относится.
Надо просто объяснять всё полностью:В разных операционных системах могут быть разные требования к именам файлов; В современных операционных системах Windows в именах файлов запрещены следующие символы: / : * ? » < > | Некоторые буквосочетания являются зарезервированными, например проводник Windows не позволит вам назвать папку или файл латинскими буквосочетаниями «con» или «nul»; Некоторые программы могут не понимать слишком длинных имён папок/файлов; Некоторые программы могут не понимать кириллицу и/или символы юникода, не рекомендуется злоупотреблять ими; Некоторые слишком старые программы могут путаться, если в имени и/или в пути к файлу есть пробелы;
постов
Цитата: Некоторые программы могут не понимать кириллицу и/или символы юникода, не рекомендуется злоупотреблять ими; А еще программы могут быть скомпилированы без поддержки юникода и другой локалью, и начнутся глюки…
А еще можно пытаться распаковать архив от архиватора без поддержки юникода/мультибайта (например, зип) созданный в другой локали и увидеть странные имена
Цитата: В современных операционных системах Windows в именах файлов запрещены следующие символы: / : * ? » < > | Их аски варианты, юникодовские прокатывают
Может просто надо пользоваться и писать нормальные проги? Чай не во времена доса живем…
постов
Это и есть те некоторые/устаревшие программы о которых я написал.
Я пишу нормально всегда А XnView самая нормальная прога, просто с таким вот косяком (благо на практике почти не попадаются такие файлы), отписал им в поддержку.
Что значит «варианты»? Символ «разделительный знак при записи пути к файлу» он один единственный, без вариантов.
И даже если какой-то символ из глубин юникода похож внешне — это всё-равно уже другой символ. И верно что им нельзя пользоваться как разделителем.
постов
Ограничение 255 символов. Нельзя использовать двоеточие (, знак вопроса(?), слэш, звездочку. На точки, запятые и пробелы в windows ограничений нет. С кириллицей проблемы могут возникнуть, если вдруг windows сломается.. Еще некоторые имена файлов зарезервированы системой, например prn. Кроме того имя файла и директории не могут совпадать. В других ОС кириллица может в вопросики превратиться и файлы станут недоступны.
постов
Цитата: Сообщение от irina37kkz Ну д так уже 100500 раз обсуждалось. Счетчик сообщений накручиваешь кучей бессмысленных постов?
постов
А вот на днях, в попытке чиста позырить, установил Android Studio. И что б вы думали? Эта падла читает каталог C:UsersАдминистраторAppData как какую-то Latin-1 крякозябру! 2015 год! Последняя версия с официального сайта! Unicode везде и всюду!
Так что legacy еще ой как долго будет жить всем назло))
И не надо предлагать сразу называться приличным именем. В моей говносборке имя юзера зашито по дефолту))
Цитата: Сообщение от Blondy Просто я почему спрашиваю — в сентябре придет очередная группа на курсы, в возрасте 50+, которая в самом хорошем случае умеет новости в Интернете читать и худо-бедно электронной почтой пользоваться. И которым собственно фиолетово — есть ли пробелы в названии файла, на латинице назван он или использует в своем названии буквенные символы кириллицы или даже буквы скандинавской группы языков (это всякие зачеркнутые «о» и «а» с точкой наверху). Вот у меня как у преподавателя встала дилемма — ведь проще сразу научится давать файлам грамотные имена, чем научится так, как человеку проще и он привык, а потом он как пошлет документ партнерам или в какую нибудь организацию, а он как не откроется…. А потом -» ой, а нам преподаватель ничего по этому поводу не говорил» или «а преподаватель сказал, что можно». А если в таком аксепте, то называть файлы можно как угодно, лишь бы Ворд открывал. С точками, пробелами, скобками, названиями в виде цитаты первого предложения….
Мир цифровой информации
Если вам кажется, что нет ничего проще, чем придумать имя для файла или папки, то скорее всего вы ошибаетесь. Существуют правила из-за которых нельзя назвать файл любым именем как обычный физический предмет. Для начала проясним, что такое имя файла, и как оно используется.
Понятия «путь» и «имя файла»
Очень часто в компьютерной литературе используются термины «путь» и «имя файла» под разными значениями. Обычно под словом «путь» понимают адрес или расположение файла, т. е. диск, папка и подпапки в которых расположен файл. Однако 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:UsersPublicMusic
Если ваш файл будет называться melody.mp3, то путь до файла (адрес, по которому компьютер будет искать этот файл, если вы попросите) будет выглядеть как C:UsersPublicMusicmelody.mp3
Это просто и понятно. Но допустим, вы решили назвать файл mymelody.mp3
Путь в такой ситуации выглядел бы как C:UsersPublicMusicmymelody.mp3
Если вы захотите открыть файл, компьютер будет искать папку my внутри папки Music. Естественно, он ее не найдет. Чтобы избежать таких ситуаций, пользователям не разрешается использовать в названиях
Прямая косая черта / тоже относится к служебным символам и используется для параметров команд (это редко нужно рядовому пользователю, конечно).
Символ * тоже относится к служебным: при поиске по файлам он используется для обозначения произвольного набора символов. Например, если вам нужно выбрать все текстовые файлы, начинающиеся на A, вы можете указать в поиске такое: A*.txt и получите список всех подходящих файлов. Очевидно, что использование звездочки в названиях создало бы много проблем.
2 5 · Хороший ответ
Здравствуйте, как можно поставить символ слэш в названии файла? Я скачал файл с интернета, в названии которого используется слэш.?
Можно предложить вариант, который упрощенно выглядит следующим образом.
Вся емкость жесткого диска, флешки, дискеты и т.д. разделена на сектора небольшого объема. Есть программы, позволяющие изменять информацию в указанном секторе.
Используя такие программы и найдя сектор, в котором хранятся названия файлов, можно изменить любой из символов в названии выбранного файла на слеш или любой другой знак.
Как защитить право на логотип, разработанный для себя,но без регистрации товарного знака?
А Вам и не надо ничего регистрировать. Авторское право остаётся за Вами с момента создания лого.
Очень много символов требует этот сайт, вот такие вот дела.
Что означает дополнительная буква L в названии лекарств?
Если я вас правильно понял, то это что-то вроде L-тироксина, L-аргинина. L — это обозначение левовращающего оптического изомера (энантиомера) вещества. Некоторые вещества имеют один химический состав, но могут находиться в разных изоформах-состояниях. При этом разные оптические изомеры по существу являются зеркальными отражениями друг друга. Они могут иметь совершенно разные свойства и эффекты на организм: D-меторфан (декстрометорфан) — диссоциатив, а L-меторфан (левометорфан) — опиоидный анальгетик. У изомеров может быть разное сродство к одним и тем же рецепторам, поэтому выделенный изомер может быть эффективнее смеси (рацемата), из которой этот изомер не выделяли.
1 3 · Хороший ответ
Почему в Windows нельзя назвать папку «aux»?
Потому что это имя зарезервировано для стандартного устройства. Это наследие операционной системы MS-DOS. Имена стандартных устройств не могут использоваться как имена файлов или папок. Стандартных устройств немного. Вот их полный список.
AUX — Первый последовательный порт.
СОМ1,СОМ2, . — Последовательные порты.
LPT1,LPT2. — Параллельные порты.
NUL — Фиктивное устройство (для тестирования).
PRN — Первый параллельный порт.
6 3 · Хороший ответ
Как выглядит знак авторского права?
Многие ошибочно полагают, что знак охраны авторского права (знак копирайта) — это латинская буква «С» в окружности. Не совсем так: внешний вид знака охраны авторского права четко определен российским законодательством. Ему посвящена целая статья Гражданского кодекса — 1271, в которой говорится, что этот знак «помещается на каждом экземпляре произведения и состоит из следующих элементов:
- латинской буквы «C» в окружности;
- имени или наименования правообладателя;
- года первого опубликования произведения».
Кроме того, употребление символа регулируется государственным стандартом Российской Федерации ГОСТ Р 7.0.1-2003 «СИБИД. Знак охраны авторского права. Общие требования и правила оформления». Стандарт регулирует форму представления знака на следующих объектах:
- книги и брошюры;
- сериальные издания;
- ноты;
- картографические издания;
- художественные альбомы;
- аудио- и видеоиздания;
- электронные издания.
В соответствии с этим стандартом в знаке копирайта на части составных или производное произведение должен быть указан конкретный объект защиты права:
- пересказ;
- иллюстрации;
- вступительная статья;
- составление;
- перевод на русский (или любой другой) язык.
И тогда знак может приобретать следующий вид: «© Алексеева А.К., перевод на русский язык, гл. 1-2, 2015».
Источник
Windows недопустимые символы в имени файла
Если вы загружаете на сайт файлы (документы, изображения, архивы и пр.), и подразумевается, что доступ к этим файлам будет публичный, а не ограниченный списком избранных товарищей, нужно иметь в виду, что различные многочисленные пользователи сети интернет используют разные устройства ( настольные компьютеры, ноутбуки, планшеты, смартфоны, . ) и разные операционные системы (Mac, PC, Linux, . ).
И чтобы у всех ваши файлы адекватно открывались, отображались и скачивались, нужно перестраховаться и избегать использования в названиях файлов и каталогах сайта запрещенных символов.
Использование правильных названий для папок и файлов очень важно для web, особенно — для загружаемых файлов, таких как PDF-файлы, документы MS Word, электронные таблицы MS Excel и др.
Создавая и формируя любой документ, мы не имеем ограничений по используемым символам внутри него и можем писать в нем любые, даже запрещенные символы. Но для сохранения файла нужно присваивать ему имя с учетом некоторых правил и ограничений интернета.
Не используйте следующие запрещенные символы в названиях директорий и файлов:
# — pound (решетка) | — right angle bracket (знак «больше») | ! — exclamation point (восклицательный знак) | ` — backtick (обратная кавычка) |
& — ampersand (амперсенд) | * — asterisk (звездочка) | ‘ — single quotes (одинарные кавычки) | | — pipe (вертикальная черта) |
< — left bracket (левая фигурная скобка) | ? — question mark (вопросительный знак) | “ — double quotes (двойные кавычки) | = — equal sign (равно) |
> — right bracket (правая фигурная скобка) | / — forward slash (прямой слеш) | : — colon (двоеточие) | |
— back slash (обратный слеш) | — blank spaces (пробел) | @ — at sign (собачка) |
Не каждый сайт или сервер имеет механизм проверки файлов и, зачастую, даже если имя файла содержит запрещенные символы, вы все равно сможете загрузить его на сервер. Но вот скачать его, скорее всего, никто не сможет, особенно, через web-интерфейс.
Рассмотрим ситуацию, в которой пользователь загрузил на сайт PDF-файл, содержащий в названии символ «Решетка» (pound) — #. Сервер имеет операционную систему Linux. Поведение сервера при наличии таких символов в именах файлов будет неадекватным.
В этом случае апач считает что URL — это все, что находится перед знаком «Решетка», а все что после него — это якорь на HTML-странице, т.е. ссылка на конкретное место в HTML-документе. Соответственно, он не распознает его, как файл и не отдает пользователю.
Так как на большинстве сайтов используется автоматический Загрузчик файлов, который без лишних вопросов загружает то, что пользователь выбирает на своем компьютере. Поведение апача верное, но он не может отличить файл от html, для него всё является ссылкой, поэтому он так и будет обрабатывать.
Таким образом, нужно всего лишь не использовать символы запрещенные для имен и папок на сайте. Это самое простое в реализации.
Источник