【发布时间】:2011-03-17 16:52:45
【问题描述】:
我正在考虑在我的 Windows 应用程序中处理更长的文件路径。
目前,我有一个文本框(编辑框),用户可以在其中键入绝对文件路径。然后,我使用GetWindowText 将键入的文件路径读入一个声明为这样的字符串:TCHAR FilePath[MAX_PATH];
显然,我在这里依赖 MAX_PATH 常量,它将我限制为 260 个字符。因此,要处理更长的文件/路径名称,我可以像这样扩展我的 TCHAR 数组:TCHAR FilePath[32767];。
或者有更好的方法吗?我可以使用可变长度数组吗? (TCHAR FilePath[]; 这在 C++ 中是否可行? - 抱歉,我对此很陌生)。
谢谢你!
这是我上面提到的整个代码sn-p:
TCHAR FilePath[MAX_PATH];
ZeroMemory(&FilePath, sizeof(FilePath));
GetWindowText(hWndFilePath, FilePath, MAX_PATH);
【问题讨论】:
-
这正是
MAX_PATH的目的——你不能有比这更长的路径。 -
@casablanca 不过,最好使用 MAX_PATH+1 声明最后一个 '\0' 字符。
-
@luiscabal:我刚刚检查了MSDN,看起来 MAX_PATH 包含空终止符。
标签: c++ winapi long-filenames max-path