Программное обеспечение

Можно ли обойти ограничение запрещающее использовать определенные знаки в названиях файлов Windows? Как это сделать?

Если не важна функциональность, то можно подобрать похожий символ в unicode
Например, для двоеточия есть альтернативы: ։ ׃ ∶ ꞉ (которые на самом деле являются армянской точкой, еврейским знаком пунктуации sof pasug, соотношением и модификатором письма "двоеточие").
Подобрать можно тут: https://unicode-table.com
AE
Antoha Elkin
3 178
Лучший ответ
Antoha Elkin Если вопрос ещё актуален, я подобрал замены:
\ - ⃥ ∖
/ - ̸ ⁄ ∕
: - ։ ׃ ∶ ꞉
* - ٭ ⁎ ∗ ⚹ ✱
? - ¿ ؟ ‽ ⁈ ⁉ (да, хороших вариантов мало)
" - ʺ ̋ ̎ ״ ″ 〃
< - ‹ 〈 ⟨ 〈
> - › 〉 ⟩ 〉
| - ǀ ׀ ∣ ❘
Никак. Нельзя, значит нельзя. Ну или переходи на Linux - там можно
нельзя. даже если и сможете это сделать, файл может стать нечитаемым
Вадим Дьяконов
Вадим Дьяконов
72 658
Можно только похожие символы. Для примера у меня есть папка с именем:
"C:\*.* >"
Николай Сергин
Николай Сергин
75 953
Сергей Праля А сами символы вы где берете? Держите в блокноте и затем копируйте?
Можно. Не писать их.
Сергей Праля Хорошая шутка, и ответ замечательный. Вам сюда https://ru.wikipedia.org/wiki/Формальная_логика
Почему она этого не любит, или Снова о Windows

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

Если при создании нового файла или папки (при работе в операционной системе Windows XP) вы попытаетесь в имени файла/папки применить символы \ /: *? «≤> |, то появится системное сообщение: «Имя файла не должно содержать следующих знаков: \ /: *? «≤> | «.

При работе в операционной системе Windows Vista в аналогичных случаях появляется диалоговое окно Переименование с сообщением «Указано неверное имя устройства».

Запрещенные имена

Если вы попытаетесь создать файлы или папки со следующими именами: con, nul, prn, AUX, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 (регистр букв — прописные буквы или строчные — значения не имеет), — система в таких случаях вместо введенного вами «запрещенного» имени выведет имя по умолчанию, например, Новая папка, или Текстовый документ, или Документ Microsoft Word. При этом Windows Vista выведет окно Переименование с сообщением «Указано неверное имя устройства».

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

Примечание. Применять для файлов и папок имена COM, COM10, COM11…, LPT, LPT10, LPT11… системой не возбраняется.

Использование этих символов может привести к получению неожиданных результатов. Имя не должно содержать пробелов.

Соглашения именования в NTFS
Имена файлов могут состоять не более чем из 255 символов, включая любое расширение. В именах сохраняется регистр введенных символов, но сами имена не зависят от регистра. NTFS не различает имена в зависимости от регистра. В именах могут быть использованы любые символы за исключением указанных ниже:
? «/ \ ≤> * | :
В настоящее время из командной строки можно задать имя файла длиной не более 253 символов.

Системные папки

Также Windows не позволит переименовать или переместить системные папки, такие как «Documents and Settings» (в Vista — «Пользователи»), «Windows», «System32», «Program Files». Они необходимы для нормальной работы Windows (если каким-либо образом — не в среде Windows — их переименовать/переместить, то вы не сможете загрузить операционную систему).

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

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

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

Допустим, вы пользователь 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 и получите список всех подходящих файлов. Очевидно, что использование звездочки в названиях создало бы много проблем.