![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 30.04.2019
Сообщений: 44
|
![]()
Добрый день.
В справке по функции FindFirstFileW, написано, что в параметр "lpFileName" можно передать примерно 32 тыс символов, для этого надо перед полным именем подставить \\?\. Я подставляю перед полным именем \\?\. Передаю примерно 1 тыс символов и возвращается ошибка 87. А по логике должна быть 2 - файл не существует. Если передаю примерно 250 символов, то возвращается ошибка 2. Я прихожу к выводу, что нет смысла использовать \\?\. Или в каких-то случаях это нужно? Программирую не на C++, поэтому не смогу воспользоваться встроенными средствами языка C++. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
В чем, собственно, суть поста?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 30.04.2019
Сообщений: 44
|
![]()
Полное имя вымышленно. Я просто пытаюсь понять ситуацию.
Полное имя я формирую так: Код:
Но создать файл с количеством символов в полном имени 282 нельзя наверное. Какие-то нестыковки. Код:
|
![]() |
![]() |
![]() |
#4 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 30.04.2019
Сообщений: 44
|
![]()
К этому пути:
C:\Users\User\Desktop\файл справа добавляется одна тысяча английских букв "a". Получается так: C:\Users\User\Desktop\файлaaaaaaaaa aaaaaaa....a Спереди полного имени добавляется префикс: \\?\ и получается так: \\?\C:\Users\User\Desktop\файлaaaaa aaaaaaaaaaa....a Полное имя записывается в переменную FN и переменная FN передается в функцию FindFirstFileW. |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 24.06.2019 в 11:12. |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 30.04.2019
Сообщений: 44
|
![]()
Аватар, а вообще, можете привести пример, когда может потребоваться MAX_PATH, в которой 32 тыс символов?
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,725
|
![]()
Когда вам нужен такой длинный путь. Например, \mysupercoolserver\backups\lastyear \01-february\partners\superpartner\roga andkopyta\otchety\...
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 30.04.2019
Сообщений: 44
|
![]()
p51x, физически Windows позволит создать путь с длиной 32 тыс символов?
У меня получается создать папку с полным именем длиной 247 символов. Если создаю 248, то происходит ошибка. Не знаю, как провести тест правильно, чтобы проверить. Может быть нужно создавать вложенные папки с короткими именами. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,725
|
![]()
32 тыс не пробовал, но за 255 точно выходил
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод имени файла с клавиатуры и передача в функцию - C (СИ) | Alex_Kardo | Помощь студентам | 4 | 17.11.2015 15:16 |
Передача имени ссылки | economic_man | PHP | 4 | 24.02.2015 21:30 |
Передача в функцию указателя на функцию C | Jar | Помощь студентам | 3 | 03.05.2014 16:27 |
Передача пути и имени файла | Miha85193 | Общие вопросы Delphi | 13 | 07.07.2010 15:02 |
Передача имени класса как параметра | Квэнди | Общие вопросы Delphi | 14 | 06.04.2009 20:09 |