PathCchRemoveFileSpec удалит последний элемент в пути, поэтому, если вы передадите ему путь к каталогу, последняя папка будет удалена.
Если вы хотите избежать этого и не уверены, является ли путь к файлу каталогом, используйте PathIsDirectory
PathCchRemoveFileSpec не работает должным образом на путях, содержащих прямые косые черты.
Ответ 4
используйте strrchr(), чтобы найти последнюю обратную косую черту и разделите строку.
char *pos = strrchr(pathname, '\\');
if (pos != NULL) {
*pos = '\0'; //this will put the null terminator here. you can also copy to another string if you want
}
Ответ 5
PathRemoveFileSpec (...) вам не нужно Windows 8 для этого.
вам нужно будет включить Shlwapi.h и Shlwapi.lib
но они winapi, так что вам не нужен специальный SDK