Как добавить двоеточие в названии файла

Обновлено: 07.07.2024

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

Понятия «путь» и «имя файла»

Очень часто в компьютерной литературе используются термины «путь» и «имя файла» под разными значениями. Обычно под словом «путь» понимают адрес или расположение файла, т. е. диск, папка и подпапки в которых расположен файл. Однако Microsoft и другие считают, что в путь к файлу входит не только его расположение но и само имя файла. А некоторые подразумевают под словом «путь» только имена файла и папок, в которых он расположен, без указания диска. Некоторые пользователи полагают, что «имя файла» не включает расширение. В данной статье расширение всегда является частью имени файла. На примере ниже синим цветом выделен путь к файлу, а красным имя файла.
X:\папка\подпапка\ файл.расширение

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

Ограничения на длины имен файлов и путей

Существуют ограничения на длину имени файла и на длину пути. Абсолютное ограничение длины имени файла вместе включая путь к нему равно 260 символам. Этот предел называют термином MAX_PATH. На самом же деле на практике пределы для имен еще меньше из-за ряда других ограничений. Например, каждая строка на конце должна содержать так называемый нулевой символ, который обозначает конец строки. Несмотря на то, что маркер конца строки не отображается, он учитывается как отдельный символ при подсчете длины, а значит остается 259 символов доступных для имени файла и пути к нему. Первые три символа в пути используются для обозначения диска (например, C:\). Это уменьшает предел для имен папок, подпапок и файла до 256 символов.

На имя объекта (папки или файла) наложено ограничение длины 255 символов. Этот предел действителен только, если объект не расположен внутри папки. Так как при расположении объекта внутри папки, сумма длин всех папок в которых он расположен, разделителей и имени объекта ограничена 256 символами, то предел длины самого имени объекта меньше 255 символов.

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

Можно ли как-нибудь добраться до них не переименовывая в исходной системе?


А мне линукс просто не давал скинуть на fat- или ntfs-раздел неправильно названные файлы.

Если же ты пытаешься добраться до них через виндовые драйверы для никсовых ФС, то ССЗБ - никак.


А, это ограничения фс?

У меня ext3 и виндовые дрова, да.

Может какая нибудь прога от Acronis или Paragon поможет?


попробуй старый FAR (1.7), он скорее всего увидит(прочитает)



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


Ещё можно попробовать поставить SUA и попробовать через неё.


Что-что? Гугл нашёл несколько университетов и пару женских школ.


Надо было написать рядом Windows


Лол, в вики в Known Problems первой же строкой:

Character translation must be used to accommodate filenames which include a colon (:) or other characters that do not comply with the naming conventions of Windows file-systems.

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

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

Для некоторых экспериментов понадобится командная строка (Пуск > в поиске пишем "cmd" > ENTER, нужно будет перейти в папку, в которой мы это всё будем делать - cd имя_папки или путь). ПОЕХАЛИ.

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

1. Как открыть командную строку в нужной папке, чтобы потом не прописывать путь (cd путь). Очень просто. Зажимаете SHIFT Правая клавиша мыши по пустому месту в папке > Далее выбираем "Открыть окно команд".

Из той же оперы: SHIFT Правая кнопка мыши по файлу > Копировать как путь - таким образом вы скопируете пусть до файла.

Те кто знали сейчас наверно подумали, что пост дальше таким и будет, но нет, читайте далее :)

2. Создадим такую папку, которую нельзя будет переименовать или удалить. Интересно? Для этого нам нужно создать папку с 2-мя точками на конце. Но если вы будете пробовать это сделать стандартным способом - у вас ничего не получится. Поэтому делаем это из командной строки:

--
md name.. (пикабу съел символ, поэтому команды в комментах)

где name - любое название, которое вам нравится.
--

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

Удалить такую папку вы можете следующим образом:

--
rd name.. (пикабу съел символ, поэтому команды в комментах)

где name - то самое название
--

А ещё можно создать папку con, nul и пр. с помощью командной строки и они будут иметь те же свойства, что и папки с 2-мя точками: "md con" (пикабу съел символ, поэтому команды в комментах)

Удалить: "rd con" (пикабу съел символ, поэтому команды в комментах)

О такой штуке должен знать каждый!

3. PSR. А что это? Как вы думаете? Это средство записи действий по воспроизведению неполадок. Эта программа существует в Windows. Для того, чтобы её включить, нужно нажать Пуск > в поиске ввести "psr" > нажать ENTER.

У вас появится окошко с активной кнопкой "Начать запись". Жмите! Попробуйте открыть файл, закрыть файл, что-то написать. Остановите запись! Сохраните. Теперь вы имеете архив, в архиве .mht файл (веб-страница). Включите его с помощью Internet Explorer, там вы увидите скриншоты и описание всех ваших действий.

4. Панель математического ввода. ДА, вы не поверите, она тоже есть в Windows по-умолчанию. Для того, чтобы её включить, нужно нажать Пуск > в поиске ввести "mip" > нажать ENTER. Или Пуск > Стандартные > Панель математического ввода.

Я думаю тут объяснять не нужно, просто пишите рукой цифры и действия, он их преобразовывает в печатный вид.

Следующая функция, думаю, понадобится ТОЛЬКО владельцам сенсорных экранов и планшетов с Windows.

5. Панель ввода планшетного ПК и персонализация распознавания рукописного текста. К этим двум программам можно попасть через Пуск > Стандартные > Планшетный ПК.

Первая из них переводит ваш рукописный почерк в печатный. Хорошая штука, если вы пишите стилусом по экрану. Вторая существует для того, чтобы обучить Windows понимать ваш почерк. "Панель ввода планшетного ПК" и так понимает приблизительно ваш почерк, но частенько вы можете увидеть ошибки. Для этого и существует "Персонализация распознавания рукописного текста".

Вы даже не представляете, сколько много ещё всяких разных утилит хранит в себе Windows :) Если найду время, в скором времени я продолжу выкладывать посты серии "Хитрости Windows, о которых вы даже не знали". Подписывайтесь, чтобы не пропустить :)

А ты еще создай пост про клавиши которые не все знали.

Типа "Виндовс+D", "ctrl+shift+sc" и так далее

подписался-пригодится (если не забуду что подписался)=)

md name..\ - создание папки с 2-мя точками
rd name..\ - её удаление

md con\ - создание папки con
rd con\ - её удаление

Не плохо было бы писать, для какой винды подходят хитрости. К примеру для XP из всего списка только 2-й пункт работоспособен.

про PSR очень понравилось! Спасибо, остально по большему счёту сам знал :) я очень жду ещё новых постов

ЗЫ сам сейчас занимаюсь разроботкой презентации и методики по обучению людей шорткатам и хитростям винды (хочу научить людей работать быстро и продуктивно на ПК)

Маленькие хитрости. Хозяйке на заметку

Маленькие хитрости. Хозяйке на заметку Арнольд Шварценеггер, Хищник (фильм), Хитрость, Шоколад, Лайфхак

Экологически чистый холодильник

Работает от холодной воды горного ручья.
И судя по всему неплохо работает ..


Очередь на госуслугах


Это реально работает!

Знакомое ощущение, что собственная жизнь по своим ттх вообще не радует, все не так как хотелось бы, и при этом поганое ощущение, что ни на что не можешь повлиять? Бывало? А бывало желание свалить из этой реальности к чертям. в книжечку например, или в сериальчик. или в игру? Вот последнее особенно. Мне ближе фентези, фильмы и книжки, чем игры, но вот эта тема - сбежать от собственной жизни, прям очень актуальна. И в очередной такой "побег" пришла мне в голову мысль (не новая, да, но пришла). Вот песонаж у меня в книжке впахивал-впахивал. И выковал себе магический посох. И сил у него прибавилось, и статус возрос, и прочие плюшки от нового стаффа. Разница меж игрой лишь в том, что я просто читала, герой сам хуярил, а игроманам приходится впахивать вместо персонажа. Ну и короче. а ведь в жизни так же работает, не? Ты проходишь квест, собираешь барахло походу, повышаешь свои статы. Легкий квест, маленькие плюшки. Для чего-то существенного нужно попотеть подольше. Если босс сильно крутой, понадобится несколько подходов. Но в итоге, принцип простой. Делаешь то-то, получаешь профит. Просто обычно по жизни я шла несколько с другой идеологией. Есть такое слово НАДО. Есть такое слово ДОЛЖЕН. И дальше список, длиннюший такой, чего там надо и кому должен. И про плюшки там ни слова. Смотришь на это, и думаешь такой: "Да идите лесом, я лучше сериальчик посмотрю!". И по ходу этого жизнь преврашается в унылое дерьмо, злишься, что живешь не так, как хотелось бы, и при этом мучаешься чувством вины, потому что совершенно очевидно, чья ленивая задница в этом виновата. А лучшее лекарство от этого дерьма - сбежать так далеко, чтоб с реальностью пересекаться по минимуму.

Вот где-то на этом моменте мой маг выковал посох. И я решила сделать так же. Пошла и починила наушники, которые уже года два как ждали этого - уж больно звук у них хорош. Прошла квест, получила ништяк, который дает мне способность наслаждаться красивым звучанием музыки. Я час времени потратила, а радуюсь уже вторую неделю. И в этом появился какой-то спортивный интерес. Когда делаешь что-то не потому что надо. В жопу вообще все эти надо. Не надо и не должен, ну нафиг! А потому что ХОЧУ. Хочу вон ту штуку, для этого нужно пройти квест. Хочу красивую обувь, квест "починить ботинки". Хочу записывать песни. Квест "заработать бабла на микрофон". Главное выбирать квесты по силам и свободному времени. Иногда хочется отдохнуть и не браться за что-то глобальное, а порадоваться хочется, тогда квест типа "повесить вешалку" или "зашить дырку в кармане" станут прекрасным и не напряжным источником радости. Главное не забывать обсмаковывать приобретенный результат.

Короче, идея не новая. но я не нарадуюсь. Неспеша моя жизнь становится довольно уютным местом. Вот. Рекомендую=)

В эпоху операционной системы MS-DOS и файловой системы FAT16 существовали жёсткие ограничения составления имён файлов. Так, максимальная длина имён файла не должна была превышать 8 символов, а расширения – 3 символов.

С выходом Windows 95 максимальная длина имени файла увеличилась до 255 символов, и с тех пор нам не приходится гадать, что скрывается в файле с названием MARIOB

1.RAR. В новых файловых системах FAT32 и NTFS с тех времён остались другие, менее заметные, но всё же ограничения.

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

Здесь же оговариваются ограничения. Например, символы “”, “/”, “?”, “|”, “*”,“<”, “>” и “:” имеют специальное значение в Windows при операциях с файлами, в частности, из командной строки, и поэтому не могут быть использованы в имени отдельного файла.

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

Следует обратить внимание на специфическое использование символов точки “.”, двоеточия “:” и пробела. Символ пробела может встречаться в имени файла или каталога. Точка используется как разделитель имени файла от расширения. Двоеточие – это разделитель между буквой диска и остальной частью пути. Использование двоеточия не допускается нигде, кроме как после буквы диска.

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

Такое странное, на первый взгляд, ограничение существует, как объясняет Microsoft, ради совместимости новых файловых систем со старыми, такими как HPFS, используемой в OS/2 и FAT16. Я считаю, что это ограничение частично связано с двумя существующими виртуальными файловыми объектами (так называемые «точки»).

При работе с файловыми менеджерами вроде Total Commander, для перехода в предыдущую папку надо щёлкнуть по каталогу с названием “..” (две точки). В файловых системах так обозначается родительский каталог относительно текущего пути, а текущая папка обозначается как “.” (одна точка).

Честно говоря, эти объекты не являются настоящими файлами или каталогами. Это просто абстрактные объекты, используемые по традиции для навигации между папками.

В Windows Explorer (Проводник) они вообще не показываются. Поскольку пользователь может создавать файлы, имена которых начинаются с точки (но не в Windows Explorer), то Microsoft заблокировала возможность ставить точки в конце названия, чтобы было невозможно создать файл “..”. Аналогично заблокирован в конце имени и пробел.

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

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

Заключается в использовании UNC-путей (Universal Naming Convention – Универсальное соглашение об именах). Это формат для записи пути к файлу, расположенному на удалённом компьютере.

Он имеет формат: “serversharepath”, где server – это имя сервера, share – расшаренный ресурс на нём, а далее следует путь к файлу в обычном формате. Данный способ доступа к файлам можно применять и для локальной машины, только в этом случае вместо “server” следует подставить “?” (знак вопроса) или “.” (точка), а путь к файлу указать вместе с буквой диска. Например, так: “?C:Downloadsfile.txt”.

Это, пожалуй, самый простой и удобный способ. Разберём его на примере удаления файла с некорректным названием “CABM909J.”, который образовался у меня в момент скачивания прикреплённого к письму DOC-файла с именем на украинском языке, и который система не правильно поняла.

Выяснилось, что в командной строке этот способ не действует, а вот при использовании стандартных системных команд (API), например, из среды разработки программ Delphi всё успешно работает.

Итак, весь фокус в том, что вместо обычного локального имени файла или полного пути необходимо указывать полный путь, предваряя его комбинацией “?” (что предпочтительнее) или “.”. Получится, приблизительно следующее: “?c:DownloadsCABM909J.”

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

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

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

Заключается в подстановке постфикса “.” в конце имени. Аналогично позволяет совершать манипуляции с файлами и папками, с тем лишь отличием, что специальную комбинацию символов “.” следует ставить не в начале пути, а в конце, сразу за именем.

Данный способ применим и к папкам при использовании стандартных команд CopyFile, MoveFile, MkDir, RmDir и некоторых других. В командной строке данный способ можно применять только к каталогам. Так, например, если необходимо, можно создать папку с нестандартным именем “.HELLO.” (в начале и в конце имени точка) командой:

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

Windows: Лечим глючные файлы NTFS

Для успешного удаления такой папки необходимо команду тоже дополнить постфиксом (см. рис. 1):

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

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

Читайте также: