Ошибка доступа к файлу с длинным именем
Как разрулить эту ситуацию?Ведь Windows поддерживает намного более длинные имена файлов(не знаю насчёт FAT,но NTFS поддерживает),и,тем не менее,не хочет работать
Пробовал с помощью Volkov commander(со включенной поддержкой длинных имён и без неё)–ничего.При входе в папку,вложенность которой(и,соответственно,полный путь) очень велика,VC просто выкидывает в корень диска,и всё
Может,есть альтернативные решения,способные работать с длинными именами?
например у тебя есть папка с длинным именем суперпупертрупперблаблабладиректориядляхраненияфайловсдлиннымиименами и коротким 5D29~1 в этой директории у тебя находятся 64 файла с именами суперпупертрупперблаблаблафайлхранящийсявдиректориидляхраненияфайловсдлиннымиименами?? (вместо вопросительных знаков цифры). Теперь рядом с этой супер директорией создаешь директорию 1 и копируешь в нее все файлы
Так что я не знаю,сколькими уровнями выше эту папку создать.К тому же,это дело просто может не скопироваться
Обрати внимание на ключ N
Вот путь:
D:\@pixo $oft\Программы\Установки\Программы\По категориям\Мультимедиа\Создание,редактирование\Mac romedia\Macromedia Studio GZQTables\Macromedia Add-Ons\Macromedia DevNet Resource Kit Volume 4\devnet\devnet\mx
это всего 209 символов
вообще есть такие программы как FAR, Total Commander..
вообще есть такие программы как FAR, Total Commander..
И Проводник кстати.
Там ещё есть папки,причём с большим уровнем вложенности,поэтому-то и >260 символов…
Так что Проводник тут не работает.А Волковым я пробовал…Он вылетает в корень диска уже на папке "Редактирование".Тут и пробовать нечего
…
Пробовал,как предлагали,из командной строки:
MX\*.*
Не удается найти указанный файл.
Скопировано файлов: 0
Так что Проводник тут не работает.
Как-то очень сомнительно. А чем же их туда запихнули-то? И MAX_PATH не просто так введена. Для любых ФС. А про волков вы забудьте. Как страшный сон. FAR Unicode.
Да :) Беру свои слова назад. Очень забавные вещи происходят :) Создал себе такой файлик - на нем даже контекстное меню урезанное. Без вырезать/копировать/вставить. И все программы на нем обламываются - от антивирусов до тестовых редакторов и FAR с Total-ом. Майкрософтские там же. Одного не понимаю - зачем было вводить такую возможность, чтобы ею нельзя было воспользоваться стандартными средствами? Своей прогой-то я могу его создать/скопировать..
Пробуйте net use или subst.
А вопрос остается открытым - как так у вас получилось? Точнее чем.
Ясен перец!С ним я и пытался копировать
Ну и не получилось,в общем,даже с ключом…
Протестировал на своей папке.Для неверующих[SIZE="1"](наверное,их Фома звать,не так ли?:))[/SIZE] мне и Phodopus'у в аттаче картинка,описывающая увиденное нами
Т.е. у меня то же самое произошло касательно менюшек.Антивирус Касперского,правда,не обломался–нормально проверил(лог тоже в аттаче,для тех,кто не верит в длину имени)…даже вирусов не нашёл:D
Насчёт текстовых редакторов:при попытке открыть Блокнотом и Paint'ом файл из папки они написали "Недопустимое имя файла"(ибо у них стандартный ComDlg,вот и ответ одинаковый).Word же на это дело ответил "Полный путь к <…> имеет слишком большую длину.Дабы укоротить путь,подключите дополнительный сетевой диск",т.е. тут уже есть подсказка,аналогичная приведённой выше
Пробуйте net use или subst
Что за прога?
Пробовал Subst.Работает,благодарю за подсказку…и как я об этом не вспомнил,у самого ж есть смонтированный таким образом каталог:o
История сия восходит к давним временам.Когда-то я скопировал диск с Flash MX,и с тех пор файлы по этому адресу и лежали.Насколько я помню,я нескольким папкам верхнего уровня менял имена(причём,видимо,в сторону увеличения длины),вот и пришёл к такой ситуации
А наткнулся я на глюки с длиной имени при весьма косвенных обстоятельствах–программой Streams с technet.microsoft.com искал потоки у файлов на NTFS-томе,и заметил,что она в лог выдавала ошибку на файлах в этой папке.Я решил её переместить на C: (заодно уровень вложенности уменьшить),и тут-то нарвался на сообщение Windows о том,что для неё это чересчур великовато.А потом,собственно,и запостил свой вопрос
…
Отвечая точно на поставленный вопрос,напишу:своими руками и средствами Windows(а именно,Explorer'ом)
P.S.Несколько комментариев:
0)Под "папкой" понимается D:\@pixo $oft\Программы\Установки\Программы\По категориям\Мультимедиа\Создание,редактирование\Macromedia\Macromedia Studio GZQTables\Macromedia Add-Ons\Macromedia DevNet Resource Kit Volume 4\devnet\devnet\mx\dreamweaver\articles\dotnet_usercontrol и находящиеся в ней файлы(именно у них урезанное меню)
1)Просьба внимательно прочесть мою писанину–как-никак,не менее получаса на неё потратил
2)На самом деле,в аттаче–RAR-архив,просто переименованный.К сожалению,CodeNet пока RARы не жалует…
Надеюсь,ответил на все Ваши вопросы должным образом
Ну набросал по-быстрому такую, что мне файл этот создаст. Чтобы не ждать ответа как это воспроизвести. Хотя когда написал уже доперло что можно просто родительские каталоги переименовывать в сторону увеличения их имени :)
Вот таким образом я,видимо,и умудрился сотворить такую ситуацию:D
using namespace std;
int main(int argc, wchar_t *argv[])
{
HANDLE h = CreateFileW(
L"\\\\?\\c:\\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\aaaaaaaaaaaaaaaaaaaa.txt",
0, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
CloseHandle(h);
}
Так же всё и удаляется