javascript - Node JS 使用 windows % 变量视为相对路径的绝对路径

标签 javascript node.js filepath fs

我在 Node.js 脚本中使用 fs.unlinkSync() 方法,以便删除位于 Appdata 目录中的文件。

定位 Appdata 目录的最佳实践是使用 %appdata% 指定路径,因此在我的代码中:

var filePath = '%appdata%/some/path/file.ext';
fs.unlinkSync(filePath);

问题是返回一个错误,表明路径错误,因为它试图找到类似的内容:

C:\my\project\%appdata%\some\path\file.ext

这显然不存在。

因此,我正在寻找将 %appdata% 解析为 C:\Users\user\AppData\Roaming 的最佳方法。

希望我能做一些事情:

var filePath = resolveToAbsolutePath('%appdata%/some/path/file.ext');
fs.unlinkSync(filePath);

感谢任何形式的帮助。

注释:

  1. 不,该问题与使用正斜杠而不是反斜杠无关。
  2. 这与使用环境变量不同,因为我从外部获取路径,并且我还需要能够解析 % 路径。我有兴趣推广该解决方案,而不是手动用环境变量数据替换路径。

最佳答案

您可以使用解析路径的函数来解析它:

function resolveToAbsolutePath(path) {
    return path.replace(/%([^%]+)%/g, function(_, key) {
        return process.env[key];
    });
}
resolveToAbsolutePath('%LOCALAPPDATA%\\Google\\Chrome\\Application');

关于javascript - Node JS 使用 windows % 变量视为相对路径的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015745/

相关文章:

file - 使用动态文件名保存 pandas excel 数据框

javascript - 滚动后响应式粘性菜单不起作用

javascript - "The"原型(prototype)是什么?

javascript - PhoneGap 中的 PayPal 登录按钮

javascript - 如何在服务器端 React 中访问 JSX 组件的 DOM 事件处理程序

javascript - heroku Node js redis出错

java - 从java中的文件路径中提取日期

javascript - 带动态参数的递归

node.js - cloudinary 多个.jpg上传NODE.JS

java - 如何调用 .properties 文件中列出的文件的文件路径