![使用“拖放”方法时,Media Player Classic 无法播放名称过长的视频](https://linux22.com/image/1572306/%E4%BD%BF%E7%94%A8%E2%80%9C%E6%8B%96%E6%94%BE%E2%80%9D%E6%96%B9%E6%B3%95%E6%97%B6%EF%BC%8CMedia%20Player%20Classic%20%E6%97%A0%E6%B3%95%E6%92%AD%E6%94%BE%E5%90%8D%E7%A7%B0%E8%BF%87%E9%95%BF%E7%9A%84%E8%A7%86%E9%A2%91.png)
当我双击一个过长名称的文件时,它会按预期播放,但是当我将同一个文件拖放到 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 个字符。本地路径的结构顺序如下:驱动器号、冒号、反斜杠、以反斜杠分隔的名称组件以及终止空字符。