Когда я дважды щелкаю по файлу с длинным именем, он воспроизводится, как и ожидалось, но когда я перетаскиваю тот же файл в окно MPC, он не воспроизводится и показывает "Файл не найден".

Есть ли решение этой проблемы, кроме использования более коротких имен?

1 ответ1

0

Читая часть исходного кода, который я придумал с этими строками

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 символов. Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имен, разделенные обратной косой чертой, и завершающий нулевой символ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .