Nodejs:避免在fs.createWriteStream函数中自动添加反斜杠

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

我正在探索ytdl-core库以下载youtube视频,并且对我来说效果很好。问题是,当我尝试下载标题中带有单引号的视频时,我从fs库得到以下错误。

{ [Error: ENOENT: no such file or directory, open 'C:\Users\ahmed\Documents\ProjectFolder\downloads\What's The Best Suspension - Soft or Stiff Springs? - video.mp4']
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path:
   'C:\\Users\\ahmed\\Documents\\ProjectFolder\\downloads\\What\'s The Best Suspension - Soft or Stiff Springs? - video.mp4' }

[我注意到在单引号之前会自动添加一个反斜杠,所以我认为它正在寻找一个名为“ What”的文件夹,但是即使创建了该文件夹,我仍然遇到相同的错误。

这是我的代码:

const yt = ytdl.downloadFromInfo(info, {quality: itag});  //passing info object and options object to choose a format
yt.on('error', console.error);
yt.on('progress', onProgress);  //calling a function to log the progress
let writeStream = fs.createWriteStream(videoTitle); //video title is stored in a variable from a previous fucntion
writeStream.on('error', console.error);
yt.pipe(writeStream);

我希望有人可以帮助我克服这个问题。

node.js fs ytdl
1个回答
0
投票

是“?” Windows中文件名中不允许的标记,这与Ahmed ElMetwally解决的问题相同。那么删除“?”之后视频标题中的标记。效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.