当我双击一个过长名称的文件时,它会按预期播放,但是当我将同一个文件拖放到 MPC 窗口时,它不会播放,并且显示“未找到文件”。
除了使用较短的名称之外,还有其他解决方案吗?
答案1
阅读一些源代码后,我得出了以下几行
for (UINT iFile = 0; iFile < nFiles; iFile++) {
CString fn;
fn.ReleaseBuffer(::DragQueryFile(hDrop, iFile, fn.GetBuffer(MAX_PATH), MAX_PATH));
slFiles.AddTail(fn);
}
MAX_PATH 如果来自标准 Windows API,其限制为 260 个字符长,因此这是拖放的限制,除非您修改它。从文档:
在 Windows API 中(以下段落中讨论的一些例外情况),路径的最大长度为 MAX_PATH,定义为 260 个字符。本地路径的结构顺序如下:驱动器号、冒号、反斜杠、以反斜杠分隔的名称组件以及终止空字符。