【问题标题】:Nodejs: Avoid automatically adding backslash in fs.createWriteStream functionNodejs:避免在 fs.createWriteStream 函数中自动添加反斜杠
【发布时间】:2020-10-05 20:03:50
【问题描述】:

我正在探索 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);

我希望有人可以帮助我解决这个问题。

【问题讨论】:

  • @AhmedElMetwally 感谢您的及时回复。您提供的问题中的问题是在文件名中使用冒号,这不是我的问题。我的问题是 fs 库会在我不希望它这样做的单引号之前自动添加 \。
  • 为什么不删除所有单引号? videoTitle.split('"').join("")

标签: node.js fs ytdl


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-08-05
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 2016-11-27
    • 2017-05-07
    • 2015-10-23
    相关资源
    最近更新 更多