从文件或路径获取FILE扩展名

问题描述 投票:0回答:1

我正在尝试创建一个可以获取文件扩展名的方法。我找到了多种替代品,这个是我的解决方案:

const char *getExt(const char *filename) {
    const char *ext = strrchr(filename, '.');
    if(!ext || ext == filename){
        return "No Extension";
    }else{
        return ext + 1;
    }
}

现在,问题在于扩展.tar.gz

我怎样才能选择这种类型的扩展,而不会只用一个点(.)搞乱所有其他扩展?

c string file file-extension
1个回答
0
投票

在我使用多年:

char *GetExtension (const char *str)                // Extract the extension from the string  (incl '.')
{
    const char *pstr;
    if (!str ||!*str) return((char *)str);

    pstr = str + strlen(str) - 1;
    while ((*pstr != '/') && (*pstr != '\\') && (*pstr != '.') && (pstr > str))
            pstr--;
    if (*pstr != '.') return (0);
    return ((char *)pstr); //includes separator
}
© www.soinside.com 2019 - 2024. All rights reserved.