我在 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);
感谢任何形式的帮助。
注释:
- 不,该问题与使用正斜杠而不是反斜杠无关。
- 这与使用环境变量不同,因为我从外部获取路径,并且我还需要能够解析 % 路径。我有兴趣推广该解决方案,而不是手动用环境变量数据替换路径。
最佳答案
您可以使用解析路径的函数来解析它:
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/