node.js打开本地文件,文件名称包含特殊字符而打不开的解决方式

项目需求是下载完一个excel之后能直接打开文件,开始写的如下方法

openEXCEL(){
//this.bomoutput是文件存放在本地的路径
//先测试下是否有this.bomoutput文件
      myUtils.haveFile(this.bomoutput,(d)=>{
        if(d){
//有的话执行打开操作,一句命令就可以,但是怎么也不成功,后来各种尝试是因为文件名称中有特殊字符“()”,因为尝试过没有特殊字符就可以打开。
          childProcess.exec(`${this.bomoutput}`, { encoding: 'binary' },(err,stdout,stderr)=>{
            if(stdout){
              console.log("stdout");
              console.log(this.iconv.decode(stdout, 'cp936'))
            } else {
            } 
            this.dialogFinishBomVisible=false;
          })
        }
      })
    },
解决方法:传的路径要加上“”,作为一个整体,现在可以直接打开带特殊字符的文件了
childProcess.exec(` "${this.bomoutput}"`, { encoding: 'binary' },(err,stdout,stderr)=>{
            if(stdout){
              console.log("stdout");
              console.log(this.iconv.decode(stdout, 'cp936'))
            } else {
            } 
            this.dialogFinishBomVisible=false;
          })
 

猜你喜欢

转载自www.cnblogs.com/shanxinxin/p/12753303.html
今日推荐