Как переименовать файл с запрещенными символами
Перейти к содержимому

Как переименовать файл с запрещенными символами

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

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

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

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

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

Причина

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

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

Утилита для поиска файлов с недопустимыми символами в имени

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

(символ меньше)
> (символ больше)
: (двоеточие)
« (двойная кавычка)
/ (прямой слеш)
\ (обратный слеш)
| (вертикальная черта)
? (знак вопроса)
* (звёздочка)
и символы с кодами, лежащими в диапазоне 0..31

Откуда же берутся файлы, содержащие недопустимые символы в именах? Ведь средствами операционной системы Windows создание таких файлов невозможно — они запрещены на уровне API.

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

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

Утилита badfilenames.zip позволяет просканировать жёсткий диск и вывести список найденных файлов, содержащих недопустимые символы в именах. Для этого в качестве параметра утилиты необходимо указать путь, по которому будет происходить сканирование, можно так же использовать поиск по маске:

Z:\>badfilenames.exe * 111И~1.TXT \111и?.txt 222Е~1.TXT \222е?.txt Scanned 16 files in 8 directories Z:\>

Здесь на экран выводится короткие имена файлов в формате 8.3. В этом же формате содержимое директории выводятся системной командой dir с параметром /x:

Z:\>dir /x Volume in drive Z is RamDisk Volume Serial Number is 1234-5678 Directory of Z:\ 01.01.2003 00:00 TEMP 15.12.2013 23:05 52 736 BADFIL~1.EXE badfilenames.exe 08.12.2013 05:07 30 578 111И~1.TXT 111и?.txt 08.12.2013 05:06 30 201 222Е~1.TXT 222е?.txt 3 File(s) 113 515 bytes 1 Dir(s) 334 450 688 bytes free Z:\>

Используя короткое имя файла, его можно переименовать командой rename:

Z:\>rename 111И~1.TXT 111.txt

По умолчанию сканирование осуществляется в ASCII режиме, но если использовать ключ -u, то программа будет работать в режиме юникода:

Z:\>badfilenames.exe -u z: z:\111и?.txt z:\222е?.txt Scanned 16 files in 8 directories Z:\>

Для чего введён этот юникод — режим? Дело в том, что в операционных системах Windows XP, Windows 7 и Windows 8 имеется возможность отключения создания коротких имён на разделе NTFS, и соответственно программа не сможет воспользоваться короткими именами для переименования. За это отвечает ключ регистра

HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation

Если NtfsDisable8dot3NameCreation = 1, то при записи на раздел с файловой системой NTFS короткое имя файла не будет создано. Отключение этого параметра (NtfsDisable8dot3NameCreation = 0) позволяет исправить положение на будущее, но уже записанные на диск файлы всё равно не будут иметь коротких имён.

Автоматическое переименование выполняется с ключом -r или -ur (-urp) для юникодного режима. Пример использования утилиты:

Z:\>badfilenames.exe -ur z:\*.* Renamed files: z:\111и?.txt --> z:\111й.txt Renamed files: z:\222е?.txt --> z:\222ё.txt Renamed files: z:\TEMP\111и?.txt --> z:\TEMP\111й.txt Renamed files: z:\TEMP\222е?.txt --> z:\TEMP\222ё.txt Scanned 20 files in 8 directories Z:\>badfilenames.exe -r z:\*.*

Здесь ключ -ur предписывает переименование из юникода в ASCII, использую кодовую страницу, установленную по умолчанию. Если кодировка кодовой страницы настроена неправильно, то можно использовать ключ -urp, здесь все юникод-символы заменяются на заглавные английские буквы A..Z:

Z:\>badfilenames.exe -urp z:\*.* Renamed files: z:\111и?.txt --> z:\111BH.txt Renamed files: z:\222е?.txt --> z:\222YJ.txt Scanned 23 files in 8 directories Z:\>

Такой режим (ключ -urp) рекомендуется использовать в том случае, если переименовать файл с нечитаемыми символами в имени другим путём невозможно.

Как переименовать файл, папку, ярлык в Windows

В Виндовс всё просто! Мы уже умеем создавать ярлыки, а также и папки создавать тоже умеем. Но жизнь всегда преподносит неожиданные сюрпризы и приходится что-то менять, чтобы жить дальше. Чаще всего при работе с файловой системой требуется не только что-то создавать, но и видоизменять. Например, нужно поменять название папки или файла. Об этом и будет рассказано ниже: как переименовать файл, папку, ярлык в Windows.

Файлы, папки, ярлыки в Windows

Итак, есть у нас папки, файлы (и даже где-то ярлыки).

Файлы, папки, ярлыки в Windows

Выделение файла в Windows для его переименования.

Для того, чтобы переименовать файл (папку или ярлык), первым делом нужно его выделить. Для этого кликаем левой кнопкой мыши по нему! И он становится выделенным! 🙂

Выделение файла в Windows для его переименования.

Переименование файла в Windows

После небольшой паузы (достаточно длинной, чтобы не получилось двойного клика) ещё раз кликаем в название файла, папки или ярлыка. И вот оно! Теперь можно исправить имя файла! Если включен режим показа расширений файлов, то выделяется имя файла до расширения. С клавиатуры вводим новое имя файла, нажимаем Enter или просто кликаем мышкой в любое другое место на мониторе, и файл переименован!

как можно исправить имя файла в Windows

Переименование папки в Windows

Таким же точно способом производится переименование папок:

переименование папок Windows

Переименование ярлыка (ссылки) в Windows

Ярлыки с такой же лёгкостью подвержены смене названий, если очень надо. Однако, в отличие от имени файла, при переименовании выделяется всё имя ярлыка целиком (что не мешает его переименовывать).

при переименовании выделяется всё имя ярлыка целиком

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

Важно знать, что не все символы можно использовать при названии файлов!

В Windows есть запрещённые символы в именах фалов и папок.

При попытке переименовать или создать файл/папку с запрещёнными символами будет выдано предупреждение, а переименование не произойдёт.

В Windows есть запрещённые символы в именах фалов и папок

Второй способ переименования файла в Windows

Есть более сложный (в плане того, сколько придётся елозить мышкой по столу) способ:

  • Кликаем по файлу правой кнопкой мыши.
  • Из контекстного меню выбираем «Переименовать» левой кнопкой мыши.
  • Дальше всё тоже самое: переименовываем.

контекстного меню выбираем «Переименовать»

Есть ещё более длинные способы, чтобы переименовать файл, папку, ярлык в Windows. Но, думаю, что этих двух, будет вполне достаточно. 🙂

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉

Ограничение на название файла

При переносе файла с windows в linux столкнулся с проблемой при копировании, слишком длинное имя файла (файловая система ext4), можно каким либо образом обойти данное ограничение? При том если бы данный файл был один можно было бы переименовать, но таких файлов больше 500, и как бы не вариант.

frost114
09.10.18 17:03:15 MSK

Это одна из наболевших проблем.

VFS уже поддерживает более длинные имена, но во многих ФС всё ещё однобайтная длинна. Если надо имена и не использовать виндовые ФС, то можно попробовать другие FUSE ФС, или «починить» ReiserFS в ядре.

boowai ★★★★
( 09.10.18 17:13:57 MSK )

Можно переименовать все файлы однострочным скриптом.

Xenius ★★★★★
( 09.10.18 17:52:08 MSK )
Последнее исправление: Xenius 09.10.18 17:52:47 MSK (всего исправлений: 1)

а) вместо ext4 используй reiserfs, б) вместо хрюникода поставь однобайтную локаль.

Ну, а можно на лету переименовать в транслит:

cat ~/bin/rename_translit #!/bin/sh # this script has been written by Eddy # # rename_translit --- переводит русские имена файлов в транслит # # Создан 22-го Май 2006 года в 9:24 # rmspaces for Name in `ls -1` do Newname=`echo "$Name"|enconv|sed -e \ "y/йукенгзхъфывапролдэсмитьбЙУКЕНГЗХЪФЫВАПРОЛДЭСМИТЬБ/jukengzh'fyvaproldesmit'bJUKENGZH'FYVAPROLDESMIT'B/"\ -e "s/ц/tz/g" \ -e "s/ш/sh/g" \ -e "s/щ/sch/g" \ -e "s/ж/zh/g" \ -e "s/ч/ch/g" \ -e "s/ю/yu/g" \ -e "s/я/ya/g" \ -e "s/ё/yo/g" \ -e "s/Ё/YO/g" \ -e "s/Ц/TZ/g" \ -e "s/Ш/SH/g" \ -e "s/Щ/SCH/g" \ -e "s/Ж/ZH/g" \ -e "s/Ч/CH/g" \ -e "s/Ю/YU/g" \ -e "s/?/_/g" \ -e "s/Я/YA/g"` if [ "$Name" != "$Newname" ]; then mv "$Name" "$Newname" echo -e "$Name -> $Newname \r\c" fi if [ -d "$Newname" ]; then cd "$Newname" 2>/dev/null if [ $? == 0 ]; then echo -e "\n\nDiving into $Newname" rename_translit cd ../ fi fi done 

Функция rmspaces заменяет все пробелы на символы подчеркивания.

А вообще, лучше никогда не использовать в именах файлов запрещенные символы (спецсимволы и символы вне таблицы ASCII).

anonymous
( 09.10.18 18:03:50 MSK )

Если это плановый переезд, список файлов «в зубы» юзверам и нехай переименовывают. Но обязательно со сроком, типа «кто не спрятался я не виноват».

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

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