【问题标题】:path.dirname on Windows path is giving `.`Windows 路径上的 path.dirname 给出 `.`
【发布时间】:2017-12-28 22:00:35
【问题描述】:

我在电子中正在做:

 path.dirname('C:\\Users\\Blagoh\\Documents\\GitHub\\Screeenshoter\\dist\\electron\\main')

该路径是我的__dirname 的实际值。怎么不给我C:\\Users\\Blagoh\\Documents\\GitHub\\Screeenshoter\\dist\\electron?我想把main 的那部分砍掉。

【问题讨论】:

  • nodejs source for dirname 声明它返回 '.',如果传递的字符串的长度为 0 或者它只是一个没有任何(反)斜杠的字符串(只是一个文件夹)。
  • 哦,天哪,谢谢@RoyalBingBong - 我知道我需要在其中添加一个文件名。

标签: node.js electron


【解决方案1】:

假设maindirectory 内的electron。还假设您在main 文件夹中有一些名为index.js 的文件,您希望在其中拥有path of electron directory

所以,你可以这样做 path.join:

var mainFolderParentPath = path.join(__dirname, '../');

您的原始文件位置:

C:\\Users\\Blagoh\\Documents\\GitHub\\Screeenshoter\\dist\\electron\\main\\index.js

__dirname 将返回

C:\\Users\\Blagoh\\Documents\\GitHub\\Screeenshoter\\dist\\electron\\main

然后在 path.join '../' 中,将从路径中删除主文件夹。因此,您将被排除在外:

C:\\Users\\Blagoh\\Documents\\GitHub\\Screeenshoter\\dist\\electron

【讨论】:

【解决方案2】:

您显然没有阅读dirname 的文档。它声明它像 Unix 命令 dirname 一样工作,它“从文件名中去除非目录后缀”,因此您得到 C:\\Users\\Blagoh\\Documents\\GitHub\\Screeenshoter\\dist\\electron

你要找的是basename

path.basename('C:\\Users\\Blagoh\\Documents\\GitHub\\Screeenshoter\\dist\\electron\\main') 会给你main

【讨论】:

  • 您好,我正在尝试获取 `C:\\Users\\Blagoh\\Documents\\GitHub\\Screeenshoter\\dist\\electron\`
  • @Blagoh,哇哦。我不知道我是如何搞砸阅读你的问题的。对此感到抱歉:/
猜你喜欢
  • 2015-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多