美文网首页
nodejs basename特殊字符处理

nodejs basename特殊字符处理

作者: SailingBytes | 来源:发表于2022-04-18 18:26 被阅读0次

    nodejs中path模块,提供了basename用于通过文件地址获取文件名。

    path.basename('/Desktop/download/quux.png'); // quux.png

    但是,basename只能处理普通名字,特殊字符将会转译。

    path.basename('/Desktop/download/qu/u<x>qu\ux.png'); // qu:u<x>qu\\ux.png

    如在mac下“/”转译成“:”,“\” 转译成“\\”.......

    有的同学可能会说用正则replace,或者其他方法split等等......

    以上方法也行,但是有一定的风险,不同的mac、windows电脑,可能会出现不同的结果,造成兼容问题,不可控。

    使用dirname实现。

    const dlpath = '/Desktop/download/qu/u<x>qu\ux.png';

    const dirname = path.dirname(dlpath);

    const dlname = dlpath.slice(dirname.length + 1); // qu/u<x>qu\ux.png

    使用dirname直接拿到目录名地址,然后通过计算长度,截取地址中的文件名。

    这个方法稳妥,已在项目中验证。

    相关文章

      网友评论

          本文标题:nodejs basename特殊字符处理

          本文链接:https://www.haomeiwen.com/subject/bfndertx.html