Стал ковыряться с FindFirstFileW и уперся в проблему —
не удается передать маску посика с относительным путем типа "\\?\*.*" или "\\?\.\*.txt"
В первом случае поулчаю синтаксическую ошибку (LastError=123), во втором — сетевой путь не найден (LastError=3).
В МСДНе не нашлось упоминания об обязательности указания полного пути, правда примеры только с ним и показаны.
Неужели придется колдовать вокруг GetCurrentDirectoryW ?
---
wbr, Alexander Voronin
mailto:
Re: \\?\ и относительный путь?
От:
Аноним
Дата:
22.04.03 14:44
Оценка:
Здравствуйте, Александр Воронин, Вы писали:
АВ>Добрый вечер!
АВ>Стал ковыряться с FindFirstFileW и уперся в проблему - АВ>не удается передать маску посика с относительным путем типа "\\?\*.*" или "\\?\.\*.txt"
АВ>В первом случае поулчаю синтаксическую ошибку (LastError=123), во втором — сетевой путь не найден (LastError=3).
АВ>В МСДНе не нашлось упоминания об обязательности указания полного пути, правда примеры только с ним и показаны.
АВ>Неужели придется колдовать вокруг GetCurrentDirectoryW ?
Вобще-то так и не должно работать надо указать еще и диск помоему тоесть писать надо так например L"\\\\?\\c:\\*.*"
так работать будет, надо указать на каком ей томе искать.
АВ>Стал ковыряться с FindFirstFileW и уперся в проблему - АВ>не удается передать маску посика с относительным путем типа "\\?\*.*" или "\\?\.\*.txt" АВ>Неужели придется колдовать вокруг GetCurrentDirectoryW ?
А>Вобще-то так и не должно работать надо указать еще и диск помоему тоесть писать надо так например L"\\\\?\\c:\\*.*" А>так работать будет, надо указать на каком ей томе искать.
Ага, без диска — никак!
Хотя можно тем же CurrentDirectory выкрутиться (вообще-то без него — никак).
И еще — вместо "\\" в таких символьных константах можно передавать "/", тобишь вместо строки L"\\\\?\\z:\\temp\\*.*" можно передать L"//?/z:/temp/*.*", но это мелочь.
А еще, как вариант, можешь сделать функцию, которая твою строчку конвертнет (с учетом текущего пути) и уже ее передавать FindFirstFileW()...
Здравствуйте, Sinatr, Вы писали:
S>А еще, как вариант, можешь сделать функцию, которая твою строчку конвертнет (с учетом текущего пути) и уже ее передавать FindFirstFileW()...
Причем тут текущий путь — я думаю \\?\*.* означает искать не всех дисках — значит надо написать функцию которая это разварачивает на \\?\диск1Ж\*.* .. и т.д. что на самом деле труда не составит
Привет!
А>Причем тут текущий путь — я думаю \\?\*.* означает искать не всех дисках — значит надо написать функцию которая это разварачивает на \\?\диск1Ж\*.* .. и т.д. что на самом деле труда не составит
На всех дисках? (удивленно) а разве ж такое возможно? У меня (ХРюшка хоум эдишн, 3 локальных, 2 сетевых диска) запрос по "//?/*.*" ничего не выдает (я не делаю проверок на ошибки, просто FindNext... возвращает false).
Здравствуйте, Sinatr, Вы писали:
S>Привет!
А>Причем тут текущий путь — я думаю \\?\*.* означает искать не всех дисках — значит надо написать функцию которая это разварачивает на \\?\диск1Ж\*.* .. и т.д. что на самом деле труда не составит
S>На всех дисках? (удивленно) а разве ж такое возможно? У меня (ХРюшка хоум эдишн, 3 локальных, 2 сетевых диска) запрос по "//?/*.*" ничего не выдает (я не делаю проверок на ошибки, просто FindNext... возвращает false).
S>