繁体   English   中英

使用Windows%变量的Node JS绝对路径被视为相对路径

[英]Node JS Absolute paths using windows % variables treated as relative

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM