Имя файла не должно содержать следующих знаков как разрешить
Перейти к содержимому

Имя файла не должно содержать следующих знаков как разрешить

  • автор:

Недопустимое имя файла или номер (ошибка 52)

При попытке доступа к заданному файлу возникла ошибка. Эта ошибка имеет следующие причины и способы решения:

  • Оператор ссылается на файл с номером файла или именем файла, которые:
    • Не определены в операторе Open либо был определен в операторе Open, но с тех пор закрыт. Укажите имя файла в операторе Open. Обратите внимание, что если оператор Close выполнить без аргументов, возможно, все открытые в текущий момент файлы будут ненамеренно закрыты, тем самым сделав недействительными все номера файлов.
    • За пределами диапазона номеров файлов (1–511). Если кодом генерируются номера файлов по алгоритму, убедитесь, что номера являются допустимыми.
     LETTER.DOC My Memo.Txt BUDGET.92 12345678.901 Second Try.Rpt 
    • Имя файла или каталога может состоять из двух частей: имени и необязательного расширения. Две части разделяются точкой, например, myfile.new.
    • Имя может содержать до 255 знаков включительно.
    • Имя должно начинаться с буквы или цифры. Он может содержать любые символы в верхнем или нижнем регистре (в именах файлов не учитывается регистр), за исключением следующих символов: кавычки («), апострофа (), косой черты (/), обратной косой черты (**), двоеточия (:) и вертикальной полосы (|**).
    • Имя может содержать пробелы.
    • Следующие имена зарезервированы и не могут использоваться для файлов и каталогов: CON, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN и NUL. Например, если попытаться присвоить файлу имя PRN в операторе Open, принтер по умолчанию просто станет адресатом для операторов Print # и Write #, направляемых в номер файла, который указывается в операторе Open.
    • На компьютерах Macintosh имя файла может включать любой знак за исключением двоеточия (:), а также может содержать пробелы. Использование символов Null (Chr(0)) в именах файлов не допускается.

    Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).

    Поддержка и обратная связь

    Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

    Обратная связь

    Были ли сведения на этой странице полезными?

    «Это не является допустимым именем файла или» » не может открыть этот файл» при сохранении или открытии документа или файла Office для Mac

    При попытке сохранить документ Microsoft Word 2011 для Mac или PowerPoint 2011 для Mac может появиться следующее сообщение об ошибке:

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

    Кроме того, при открытии файла может появиться следующее сообщение об ошибке:

    «Приложению <> не удается открыть этот файл. Возможно, файл используется, файл не является допустимым, файл, либо имя файла может содержать недопустимые символы. «

    Причина

    Эта проблема может возникать, если вы пытаетесь сохранить файл с недопустимым символом в имени файла. Некоторые символы имеют специальные назначения, и их нельзя использовать в именах файлов. Примеры символов: < (знак "меньше" >) и (косая черта) — (косая черта) — (двоеточие) | Вертикальная черта

    Если вы пытались использовать необычные символы в имени файла (как описано в разделе «причина» этой статьи), удалите ее из имени файла и попробуйте сохранить файл. Если вы пытаетесь открыть недопустимый символ, переименуйте файл и попробуйте открыть его еще раз.

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

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

    Что еще я упустил?

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

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

    Ответ 1

    1. /(прямая косая черта) .
    1. <(меньше чем) .
    2. > (больше чем) .
    3. :(двоеточие – иногда работает, но на самом деле это NTFS Alternate Data Streams) .
    4. » (двойная кавычка) .
    5. / (прямая косая черта) .
    6. \ (обратная косая черта) .
    7. | (вертикальная полоса или труба) .
    8. ? (вопросительный знак) .
    9. * (звездочка) .
    1. 0 (байт NULL) .
    1. 0-31 (управляющие символы ASCII) .
    1. CON, PRN, AUX, NUL .
    2. COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9 .
    3. LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 .
    1. Имена файлов не могут заканчиваться пробелом или точкой.
    1. Вы об этом не спрашивали, но на всякий случай: Двоеточие «:» и прямой слэш «/» в зависимости от контекста не разрешены (например, Finder поддерживает слэш, терминал – двоеточие).

    Ответ 2

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

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

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

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

    Ответ 3

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

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

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

    Ответ 4

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

    Мы будем очень благодарны

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

    Имя файла не должно содержать следующих знаков как разрешить

    Сообщения: 507
    Благодарности: 4

    Конфигурация компьютера
    Процессор: Intel Core i7 930 ( 3360 MHz )
    Материнская плата: GigaByte X58A-UD9
    Память: Kingmax 3×4 GB + Kingston 3×2 GB
    HDD: WD 3TB + WD 2TB + Samsung 1TB + SSD OCZ Vertex 4 256 GB
    Видеокарта: LEADTEK NVIDIA GTX 480
    Звук: Asus XONAR Essence STX (PCI-E)
    Блок питания: Chieftec 850W (2010 г. вроде)
    CD/DVD: USB Transcend DVD-RW
    Монитор: Philips Brilliance 240PW (24″)
    Ноутбук/нетбук: Dell Inspiron DUO + ASUS UX32VD с аппаратным апгрейдом
    ОС: Windows 7 x64 Ultimate
    Индекс производительности Windows: 7.1 (SSD: 7.1, CPU: 7.6, RAM: 7.7, Video: 7.9)
    Прочее: UPS Powerman 2000VA, ARV KRAULER 3000 VA, Netgear wireless router dual-band и т.д.

    Граждане, я поставлен в тупик маразмом семерки.. Какого черта в ней стоят примитивные ограничения длины имени файла?
    К примеру, есть фильмы в коллекции. Один из них —

    Диск D:, папка Films, название папки с фильмом —

    Святые из бундока 2 — День всех святых @ The Boondock Saints II — All Saints Day (2009, боевик, триллер, драма, комедия, криминал, BD-REMUX 1080 P)
    В ней находятся материалы разного рода (постеры и т.п.), а также сам фильм с названием
    Святые из бундока 2 — День всех святых @ The Boondock Saints II — All Saints Day (2009, боевик, триллер, драма, комедия, криминал, BD-REMUX 1080 P) video.mkv

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

    Это сообщение посчитали полезным следующие участники:

    Сообщения: 1617
    Благодарности: 246

    Конфигурация компьютера
    Процессор: Intel Core i5-1135G7
    Память: 16GB DDR4-3200 (8×2)
    HDD: SSD NVMe SKHynix_HFM512GD3HX015N 512GB (R 3500/W 2600)
    Видеокарта: Intel Iris Xe Graphics
    Блок питания: 60Wh
    Монитор: 14″ LCD (FHD), touch
    Ноутбук/нетбук: ThinkBook 14s Yoga ITL
    ОС: Windows 11 Pro х64
    Прочее: WI-FI 6, BT 5.1, USB 3.2 x 2, Thunderbolt 4 x1, USB 3.1×1, microSD, HDMI 2.0

    Диск Д отформатирован в какую файловую систему — FAT что-ли?

    Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

    Сообщения: 507
    Благодарности: 4

    Конфигурация компьютера
    Процессор: Intel Core i7 930 ( 3360 MHz )
    Материнская плата: GigaByte X58A-UD9
    Память: Kingmax 3×4 GB + Kingston 3×2 GB
    HDD: WD 3TB + WD 2TB + Samsung 1TB + SSD OCZ Vertex 4 256 GB
    Видеокарта: LEADTEK NVIDIA GTX 480
    Звук: Asus XONAR Essence STX (PCI-E)
    Блок питания: Chieftec 850W (2010 г. вроде)
    CD/DVD: USB Transcend DVD-RW
    Монитор: Philips Brilliance 240PW (24″)
    Ноутбук/нетбук: Dell Inspiron DUO + ASUS UX32VD с аппаратным апгрейдом
    ОС: Windows 7 x64 Ultimate
    Индекс производительности Windows: 7.1 (SSD: 7.1, CPU: 7.6, RAM: 7.7, Video: 7.9)
    Прочее: UPS Powerman 2000VA, ARV KRAULER 3000 VA, Netgear wireless router dual-band и т.д.

    Изображения
    НТФС
    Был бы фат — не спрашивал бы.

    Сообщения: 1617
    Благодарности: 246

    Конфигурация компьютера
    Процессор: Intel Core i5-1135G7
    Память: 16GB DDR4-3200 (8×2)
    HDD: SSD NVMe SKHynix_HFM512GD3HX015N 512GB (R 3500/W 2600)
    Видеокарта: Intel Iris Xe Graphics
    Блок питания: 60Wh
    Монитор: 14″ LCD (FHD), touch
    Ноутбук/нетбук: ThinkBook 14s Yoga ITL
    ОС: Windows 11 Pro х64
    Прочее: WI-FI 6, BT 5.1, USB 3.2 x 2, Thunderbolt 4 x1, USB 3.1×1, microSD, HDMI 2.0

    Глючат таким образом только файлы с расширением .mkv?

    Сообщения: 507
    Благодарности: 4

    Конфигурация компьютера
    Процессор: Intel Core i7 930 ( 3360 MHz )
    Материнская плата: GigaByte X58A-UD9
    Память: Kingmax 3×4 GB + Kingston 3×2 GB
    HDD: WD 3TB + WD 2TB + Samsung 1TB + SSD OCZ Vertex 4 256 GB
    Видеокарта: LEADTEK NVIDIA GTX 480
    Звук: Asus XONAR Essence STX (PCI-E)
    Блок питания: Chieftec 850W (2010 г. вроде)
    CD/DVD: USB Transcend DVD-RW
    Монитор: Philips Brilliance 240PW (24″)
    Ноутбук/нетбук: Dell Inspiron DUO + ASUS UX32VD с аппаратным апгрейдом
    ОС: Windows 7 x64 Ultimate
    Индекс производительности Windows: 7.1 (SSD: 7.1, CPU: 7.6, RAM: 7.7, Video: 7.9)
    Прочее: UPS Powerman 2000VA, ARV KRAULER 3000 VA, Netgear wireless router dual-band и т.д.

    Проверил — не только.

    Сообщения: 12426
    Благодарности: 2328

    Конфигурация компьютера
    Процессор: Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz
    Материнская плата: Gigabyte GA-H67MA-UD2H-B3
    Память: Hynix HMT325U6BFR8C-H9 2x2Gb + Hynix HMT351U6BFR8C-H9 2x4Gb
    HDD: Hitachi HDS721010CLA332
    Звук: Realtek ALC889
    Блок питания: Asus 500W
    CD/DVD: Optiarc DVD RW AD-7201S ATA Device
    Монитор: Acer V243HQAbd
    ОС: Windows 7 Ultimate x64 SP1 RTM (6.1.7601)
    Индекс производительности Windows: 5,1

    Цитата flower:

    Как можно бороться с этим? »

    Только укорачиванием имён. Обходных путей не существует.
    Какая длина имени файла допустима?

    Цитата flower:

    я поставлен в тупик маразмом семерки.. »

    А встречали больше? Filename — Wikipedia, the free encyclopedia
    Цитата flower:

    Какого черта в ней стоят примитивные ограничения длины имени файла? »

    Последний раз редактировалось Morpheus, 11-05-2011 в 21:17 .

    Это сообщение посчитали полезным следующие участники:

    Сообщения: 52
    Благодарности: 2

    Конфигурация компьютера
    Процессор: i7 930, 2.80 Ghz
    Материнская плата: ASUS P6X58D Premium
    Память: Corsair CMX4GX3M1A1600C9 6×4ГБ
    HDD: 2*WD VelociRaptor 300GB (WD3000GLFS) + 2*Seagate Barracuda XT (Raid0)
    Видеокарта: Sapphire Radeon HD 5850 765 Mhz PCI-E 2.1 1024 Mb 4500 Mhz 256 bit 2xDVI HDMI DCP (Toxic)
    Звук: ECHO AUDIOFIRE 4 (внешняя, подключена по IEEE1394)
    Монитор: 26″
    ОС: Windows 8.1 x64 Pro Rus
    Индекс производительности Windows: 5,9 (7,5-7,5-7,7-7,7-5,9)

    Morpheus,
    В теме стоит «решено», но я бы подкорректировал вот в каком смысле.

    В ситуации аналогичной flower, я для эксперимента (был повод) скачал mp3 файл с длинным именем по о-о-чень длинному пути (полный путь больше 400 символов), причём uTorrent написал «Ошибка: Write to disk: Системе не удаётся найти указанный путь», но файл распределил и сохранил!. Кликнул я в него и он стал проигрываться! Но вот скопировать такую структуру или файл куда-нибудь даже в сторону уменьшения (но более 260 символов) общего пути или открыть в какой-нибудь программке через диалог «Open file» может не получиться.
    См.

    Ваша ссылка Какая длина имени файла допустима? даёт неточную/неполную информацию, точнее написано вот здесь Naming Files, Paths, and Namespaces
    Ведь есть функции API с UNICODE версиями, обидно, что explorer их, судя по всему не использует. А выглядит это в описанной ситуации как реальный глюк, я бы даже сказал — маразм — файл-то можно использовать, но.
    Хотя общая рекомендация остаётся — не используйте длинные пути.

    ps. У меня Windows 7×64 Pro Rus SP1

    Последний раз редактировалось student_j, 12-02-2013 в 05:07 . Причина: Дополнить конфигурацию

    Сообщения: 1
    Благодарности: 0

    Изображения

    В теории ограничение на длину имени файла или папки в NTFS составляет 255 символов, но на практике Windows API ограничивает до 244 символов (мне удалось создать).
    В теории ограничение на длину пути к файлу или папке в NTFS составляет 32767 символов, но на практике Windows API ограничивает до 245 символов (мне удалось создать).

    ОГРАНИЧЕНИЯ НА ДЛИНУ ИМЕН И ДЛИНУ ПУТИ ФАЙЛОВ И ПАПОК В WINDOWS API
    Понятия «путь» и «имя файла»
    Очень часто в компьютерной литературе используются термины «путь» и «имя файла» под разными значениями. Обычно под словом «путь» понимают адрес или расположение файла, т. е. диск, папка и подпапки в которых расположен файл. Однако 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 API.
    Если ограничение на длину имени файла или папки в Windows API на практике в 244 символа меня вполне устраивает, то ограничение на длину пути к файлу или папке в Windows API на практике в 245 символов ни меня ни большинсто пользователей не устраивает.
    У меня риторический вопрос к программистам :
    Можно ли внести самодельные изменения в Windows API после включения «Службы активации Windows» через «Компоненты Windows» .
    Если возможно то как .

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

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