Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ошибка доступа к файлу с длинным именем

7
01 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
Получилось так,что у меня на диске(NTFS) образовалась такая файловая структура,что длина её имени >256 символов(или 260),поэтому операция перемещения(да что там,даже копирования!) не хочет выполняться для одной папки
Как разрулить эту ситуацию?Ведь Windows поддерживает намного более длинные имена файлов(не знаю насчёт FAT,но NTFS поддерживает),и,тем не менее,не хочет работать
265
02 марта 2009 года
Gauss
975 / / 20.02.2000
у каждого файла в NTFS помимо длинного имени есть короткое, узнать его можно с помощью команды dir /x, и с помощью коммандной строки выполнить все необходимые действия заменяя длинные имена короткими
7
02 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
Там 230 файлов и 35 папок.Не думаю,что это очень хорошо–каждый из этих элементов обрабатывать командной строкой

Пробовал с помощью Volkov commander(со включенной поддержкой длинных имён и без неё)–ничего.При входе в папку,вложенность которой(и,соответственно,полный путь) очень велика,VC просто выкидывает в корень диска,и всё

Может,есть альтернативные решения,способные работать с длинными именами?
265
03 марта 2009 года
Gauss
975 / / 20.02.2000
наверно у всех этих папок есть корень, если у него есть длинное название можно попробовать копировать не каждый отдельный файл, а всю папку целиком
например у тебя есть папка с длинным именем суперпупертрупперблаблабладиректориядляхраненияфайловсдлиннымиименами и коротким 5D29~1 в этой директории у тебя находятся 64 файла с именами суперпупертрупперблаблаблафайлхранящийсявдиректориидляхраненияфайловсдлиннымиименами?? (вместо вопросительных знаков цифры). Теперь рядом с этой супер директорией создаешь директорию 1 и копируешь в нее все файлы

 
Код:
copy /N c:\5D29~1\*.* c:\1\
7
03 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
К сожалению,там не всё так просто–вложенность папок у меня просто офигенная.Вот путь:
Цитата:
D:\@pixo $oft\Программы\Установки\Программы\По категориям\Мультимедиа\Создание,редактирование\Macromedia\Macromedia Studio GZQTables\Macromedia Add-Ons\Macromedia DevNet Resource Kit Volume 4\devnet\devnet\mx

Так что я не знаю,сколькими уровнями выше эту папку создать.К тому же,это дело просто может не скопироваться

265
03 марта 2009 года
Gauss
975 / / 20.02.2000
Надо пробовать, а иначе долго можно сидеть и рассуждать.

Обрати внимание на ключ N
14
03 марта 2009 года
Phodopus
3.3K / / 19.06.2008
Цитата:

Вот путь:
D:\@pixo $oft\Программы\Установки\Программы\По категориям\Мультимедиа\Создание,редактирование\Mac romedia\Macromedia Studio GZQTables\Macromedia Add-Ons\Macromedia DevNet Resource Kit Volume 4\devnet\devnet\mx


это всего 209 символов
вообще есть такие программы как FAR, Total Commander..

5
03 марта 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: Phodopus
это всего 209 символов
вообще есть такие программы как FAR, Total Commander..


И Проводник кстати.

7
04 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
Дело в том,что это имя той папки,которую я хотел переместить.Нешто вы наивно полагаете,что в ней только файлы?
Там ещё есть папки,причём с большим уровнем вложенности,поэтому-то и >260 символов…
Так что Проводник тут не работает.А Волковым я пробовал…Он вылетает в корень диска уже на папке "Редактирование".Тут и пробовать нечего

Пробовал,как предлагали,из командной строки:
 
Код:
D:\@pixo $oft\Программы\Установки\Программы\По категориям\Мультимедиа\Создание,редактирование\Macromedia\Macromedia Studio GZQTables\Macromedia Add-Ons\Macromedia DevNet Resource Kit Volume 4\devnet\devnet>Copy /N MX\*.* C:\
MX\*.*
Не удается найти указанный файл.
Скопировано файлов:         0
Пусть даже там было бы "MX" вместо "MX\*.*"
265
04 марта 2009 года
Gauss
975 / / 20.02.2000
ты внимательно читал то что я написал про ключ /N ?
14
04 марта 2009 года
Phodopus
3.3K / / 19.06.2008
Цитата: @pixo $oft
Там ещё есть папки,причём с большим уровнем вложенности,поэтому-то и >260 символов…
Так что Проводник тут не работает.


Как-то очень сомнительно. А чем же их туда запихнули-то? И MAX_PATH не просто так введена. Для любых ФС. А про волков вы забудьте. Как страшный сон. FAR Unicode.

Да :) Беру свои слова назад. Очень забавные вещи происходят :) Создал себе такой файлик - на нем даже контекстное меню урезанное. Без вырезать/копировать/вставить. И все программы на нем обламываются - от антивирусов до тестовых редакторов и FAR с Total-ом. Майкрософтские там же. Одного не понимаю - зачем было вводить такую возможность, чтобы ею нельзя было воспользоваться стандартными средствами? Своей прогой-то я могу его создать/скопировать..
Пробуйте net use или subst.
А вопрос остается открытым - как так у вас получилось? Точнее чем.

7
04 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: Gauss
ты внимательно читал то что я написал про ключ /N ?

Ясен перец!С ним я и пытался копировать
Ну и не получилось,в общем,даже с ключом…

Цитата: Phodopus
Очень забавные вещи происходят :) Создал себе такой файлик - на нем даже контекстное меню урезанное. Без вырезать/копировать/вставить. И все программы на нем обламываются - от антивирусов до тестовых редактором(теКстовых редактороВ?) и FAR с Total-ом. Майкрософтские там же

Протестировал на своей папке.Для неверующих[SIZE="1"](наверное,их Фома звать,не так ли?:))[/SIZE] мне и Phodopus'у в аттаче картинка,описывающая увиденное нами
Т.е. у меня то же самое произошло касательно менюшек.Антивирус Касперского,правда,не обломался–нормально проверил(лог тоже в аттаче,для тех,кто не верит в длину имени)…даже вирусов не нашёл:D
Насчёт текстовых редакторов:при попытке открыть Блокнотом и Paint'ом файл из папки они написали "Недопустимое имя файла"(ибо у них стандартный ComDlg,вот и ответ одинаковый).Word же на это дело ответил "Полный путь к <…> имеет слишком большую длину.Дабы укоротить путь,подключите дополнительный сетевой диск",т.е. тут уже есть подсказка,аналогичная приведённой выше

Цитата: Phodopus
Своей прогой-то я могу его создать/скопировать..
Пробуйте net use или subst

Что за прога?
Пробовал Subst.Работает,благодарю за подсказку…и как я об этом не вспомнил,у самого ж есть смонтированный таким образом каталог:o

Цитата: Phodopus
А вопрос остается открытым - как так у вас получилось? Точнее чем

История сия восходит к давним временам.Когда-то я скопировал диск с 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ы не жалует…

Надеюсь,ответил на все Ваши вопросы должным образом

14
05 марта 2009 года
Phodopus
3.3K / / 19.06.2008
Цитата: @pixo $oft
Что за прога?


Ну набросал по-быстрому такую, что мне файл этот создаст. Чтобы не ждать ответа как это воспроизвести. Хотя когда написал уже доперло что можно просто родительские каталоги переименовывать в сторону увеличения их имени :)

7
05 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
Хммм!..На мои столь великие излияния был дан столь короткий пост:)
Цитата: Phodopus
Хотя когда написал уже доперло что можно просто родительские каталоги переименовывать в сторону увеличения их имени

Вот таким образом я,видимо,и умудрился сотворить такую ситуацию:D

5.3K
13 марта 2009 года
Somebody
185 / / 24.12.2006
Ситуации с длиным именем, именем из одних пробелов, именем, кончающимся но точку и т. п. делаются вполне документированными методами.
Код:
#include <windows.h>

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);
}

Так же всё и удаляется
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог