Я ищу обработку более длинных путей к файлу в приложении Windows.C++ WinAPI: обработка длинных путей/имен файлов
В настоящее время у меня есть текстовое поле (поле редактирования), в котором пользователь может ввести абсолютный путь к файлу. Затем я прочитал, что напечатанный путь к файлу, используя GetWindowText
, в строку, объявленной следующим образом: TCHAR FilePath[MAX_PATH];
Очевидно, что здесь я буду полагаться на MAX_PATH
константе, которая ограничивает меня до 260 символов. Поэтому, чтобы обрабатывать более длинные имена файлов и путей, я могу просто расширить массив TCHAR следующим образом: TCHAR FilePath[32767];
.
Или есть лучший способ? Могу ли я использовать массив переменной длины? (TCHAR FilePath[];
это возможно даже в C++?) Извините, я довольно новичок в этом).
Благодарим вас за продвинутый!
Вот весь фрагмент кода, что я упоминал выше:
TCHAR FilePath[MAX_PATH];
ZeroMemory(&FilePath, sizeof(FilePath));
GetWindowText(hWndFilePath, FilePath, MAX_PATH);
В этом и заключается цель «MAX_PATH» - вы не можете иметь пути дольше, чем это. – casablanca
@casablanca Это может быть хорошей идеей объявить его с MAX_PATH + 1 для окончательного символа '\ 0'. – luiscubal
@luiscabal: Я только что проверил [MSDN] (http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath), и похоже, что MAX_PATH включает нулевой терминатор. – casablanca