Windows NT - это операционная система, которая управляет другими операционными системами. Независимо от правил, которыми управляет операционная система, работающая с файлом, применяются правила.
Это правила Windows. Программы Unix будут следовать правилам Unix. В Unix можно создать файл, который нельзя открыть в Windows и наоборот.
Имя файла Условные
Хотя каждая файловая система может иметь специфические правила формирования отдельных компонентов в имени каталога или файла, все файловые системы следуют те же общие соглашения: имя базового файла и необязательное расширение, разделенное периодом. Например, файловая система MS-DOS FAT поддерживает 8 символов для имени базового файла и 3 символа для расширения. Это называется именем файла 8.3. Файловая система FAT и NTFS поддерживают имена файлов длиной до 255 символов. Это называется длинным именем файла. Чтобы получить имя файла MS-DOS с большим именем файла, используйте функцию GetShortPathName. Чтобы получить полный путь к файлу, используйте функцию GetFullPathName.
Обе файловые системы используют символ обратной косой черты (\) для разделения имен каталогов и имени файла при формировании пути.
Общих правила для приложений создания имен для каталогов и файлов или имен обработки, поставляемых пользователем, включают следующее:
Используйте любой символ в текущей кодовой странице для имени, но не использовать разделитель ПАОГО символ в диапазоне от 0 до 31 или любой символ, явно запрещенный файловой системой. Имя может содержать символы в расширенном наборе символов (128-255).
Используйте обратную косую черту (\), косую черту (/) или и то и другое, чтобы разделить компоненты на пути. Никакой другой символ не является допустимым в качестве разделителя путей. Обратите внимание, что имена UNC должны придерживаться следующего формата: \\ server \ share. Используйте период (.) Как компонент каталога в пути для представления текущего каталога.
Используйте два последовательных периода (..) в качестве компонента каталога в пути для представления родительского элемента текущего каталога. Используйте период (.), Чтобы отделить имя базового файла от расширения в имени каталога или имени файла.
Не используйте следующие символы в именах каталогов или имена файлов, так как они защищены:
<>: "/ \ |
Не используйте имена устройств, таких как Окс, мошенника, lpt1 , и prn, как имена файлов или имена каталогов.
Обработать путь как строку с нулевым символом.Максимальная длина для пути, включая обратную косую черту, задается MAX_PATH. . Unicode-версии нескольких функций допускают пути, превышающие длину MAX_PATH, если путь имеет префикс «\\? \». «\\? \» Сообщает функции отключить разбор пар. Однако каждый компонент в пути не может содержать больше символов MAX_PATH. Используйте префикс «\\? \» С путями для локальных устройств хранения и префикс «\\? \ UNC \» с путями, имеющими формат Universal Naming Convention (UNC). «\\? \» Игнорируется как часть пути. Например, «\\? \ C: \ myworld \ private» рассматривается как «C: \ myworld \ private», а «\\? \ UNC \ bill_g_1 \ hotstuff \ coolapps» рассматривается как «\\ bill_g_1 \ hotstuff \ coolapps».
Не принимайте чувствительность к случаю. Рассмотрите такие имена, как OSCAR, Oscar и oscar, чтобы они были одинаковыми.
Следующие зарезервированные слова не могут использоваться как имя файла: CON, PRN, AUX, CLOCK $, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2 , LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 и LPT9. Кроме того, зарезервированные слова, за которыми следует расширение, например NUL.tx7, являются недопустимыми именами файлов.
Следуя правилам, перечисленным в этом разделе, приложение может создавать допустимые имена для файлов и каталогов независимо от используемой файловой системы.
Обратные косые черты (\) используются как разделители элементов в путях (деление имени файла на путь к нему или каталоги друг от друга в пути). Вы не можете использовать их в именах файлов или каталогов. Они могут потребоваться как часть имен томов (например, «C: \»).
Platform SDK Release: август 2001
[Это] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247 (v = vs.85). aspx) рекомендуется прочитать. –
Я действительно уже прочитал это, но спасибо. Единственное, что я могу придумать, это возрастные знаки%, так как <> "и | к счастью запрещены, а & и пробелы все еще работают в цитированных дорогах. Но мне интересно, не хватает ли я чего-нибудь –
Файлы и папки, которые заканчиваются период или пространство всегда являются проблемой. –