Linux/Windows/Unix / … имена файлов: Какие символы позволяются? Которые не завершены?

Просто первое, что пришло на ум, был бы в web.config файле возможно быть доверительной проблемой уровня? Кроме того, SQL Server в режиме аутентификации Windows или режиме Смешанной аутентификации? SQL Server настроен для TCP/IP? Я думаю в TCP/IP SQL Server 2008, отключен и использует Общую память или Именованные каналы по умолчанию.

43
задан 6 October 2012 в 00:28
4 ответа

Существует обсуждение символов имени файла в статье Wikipedia об Именах файлов.

Можно найти это эссе информативным: Фиксация Имен файлов Unix/Linux/POSIX.

Эта статья сравнивает OS X и Windows XP: X по сравнению с XP: Запрещенные символы в Именах файлов (PDF, см. стр приблизительно 64-66).

Вещи, которые не должны быть в именах файлов для Alex за 1 000$

Я не знаю, какие символы должны быть не завершены, но в Linux, вероятно, не, хорошая идея выйти из символов может иметь особое значение, такое как "n" (новая строка), "t" (вкладка) и другие, но это обычно - не проблема в операциях файла. Возможно, Вы имеете в виду "оставленный", а не "незавершенный". Наиболее распространенные являются, которые оболочка интерпретирует, такие как пространство, ">", "<", и т.д. См. некоторые статьи, которые я связал для обсуждения тех.

27
ответ дан 28 November 2019 в 19:42

Единственные символы, не позволенные в имени файла в *, отклоняют, NUL и /. В Windows, только NUL, :, и \ действительно не позволяются, но много приложений ограничивают это далее, также предотвращая ?, *, +, и %.

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

26
ответ дан 28 November 2019 в 19:42
  • 1
    Вторая точка заслуживает акцента. Обычно, “escaping” относится к механизму оболочки, который позволяет пользователю указывать строки (например, пути), которые содержат символы, которые оболочка иначе рассматривала бы специальным способом. Если OP означает использовать что-то как “percent encoding” для кодирования иначе запрещенных символов, то это - чисто прикладной уровень “pathname protocol”, который каждая включенная программа должна принять (или не). –  Chris Johnsen 13 June 2010 в 07:20

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

\ / : * ? " < > |

Хорошая ссылка здесь:

Именование файлов, путей и пространств имен
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

Microsoft дальнейшие состояния:

"... на настольных платформах на базе Windows, недопустимые символы пути могли бы включать символы ASCII/Unicode 1 - 31, а также кавычка ("), меньше, чем (<), больше, чем (>), канал (|), клавиша Backspace (\b), пустой указатель (\0) и вкладка (\t)."

http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx

13
ответ дан 28 November 2019 в 19:42

На Linux и другом POSIX совместимые системы, "/" резервируется, поскольку это - разделитель каталога, и "\0" (Нулевой символ) определяет конец строки. Все остальное позволяется.

5
ответ дан 28 November 2019 в 19:42

Теги

Похожие вопросы