【发布时间】:2013-07-13 16:36:56
【问题描述】:
我想从路径字符串中提取文件名,但 GetFullPathName 函数有困难:
WCHAR *fileExt;
WCHAR szDir[256]; //dummy buffer
GetFullPathNameW(g_fileName,256, szDir,&fileExt); //g_filename is filename with path string
swprintf(szDestDir, L"C:\\Example\\%s", fileExt);
MessageBoxW(hwnd,szDestDir,L"Debug",MB_OK); //debug message
每次消息框显示“C:\Example\0”时,都会用 0 代替文件名,例如“text.txt”。
【问题讨论】:
-
你的测试用例中 g_fileName 的内容是什么?
-
代码有效。您的 szDestDir 是否有足够的空间来保存输出?
-
g_fileName 是来自打开文件对话框的 LPCWSTR,szDestDir 分配了 256 个字符。
-
确保仔细检查所有内容。以下程序有效:pastebin.com/rWbhAwxn