admin管理员组文章数量:1134247
In my File-system my working directory is here:
C:\temp\a\b\c\d
and under b\bb there's file: tmp.txt
C:\temp\a\b\bb\tmp.txt
If I want to go to this file from my working directory, I'll use this path:
"../../bb/tmp.txt"
In case the file is not exist I want to log the full path and tell the user:
"The file C:\temp\a\b\bb\tmp.txt is not exist".
My question:
I need some function that convert the relative path: "../../bb/tmp.txt" to absolute: "C:\temp\a\b\bb\tmp.txt"
In my code it should be like this:
console.log("The file" + convertToAbs("../../bb/tmp.txt") + " is not exist")
In my File-system my working directory is here:
C:\temp\a\b\c\d
and under b\bb there's file: tmp.txt
C:\temp\a\b\bb\tmp.txt
If I want to go to this file from my working directory, I'll use this path:
"../../bb/tmp.txt"
In case the file is not exist I want to log the full path and tell the user:
"The file C:\temp\a\b\bb\tmp.txt is not exist".
My question:
I need some function that convert the relative path: "../../bb/tmp.txt" to absolute: "C:\temp\a\b\bb\tmp.txt"
In my code it should be like this:
console.log("The file" + convertToAbs("../../bb/tmp.txt") + " is not exist")
Share
Improve this question
asked Aug 8, 2016 at 12:22
cheziHoyzercheziHoyzer
5,00112 gold badges56 silver badges83 bronze badges
3 Answers
Reset to default 242Use path.resolve
try:
resolve = require('path').resolve
resolve('../../bb/tmp.txt')
You could also use __dirname and __filename
for absolute path.
If you can't use require:
const path = {
/**
* @method resolveRelativeFromAbsolute resolves a relative path from an absolute path
* @param {String} relitivePath relative path
* @param {String} absolutePath absolute path
* @param {String} split default?= '/', the path of the filePath to be split wth
* @param {RegExp} replace default?= /[\/|\\]/g, the regex or string to replace the filePath's splits with
* @returns {String} resolved absolutePath
*/
resolveRelativeFromAbsolute(relitivePath, absolutePath, split = '/', replace = /[\/|\\]/g) {
relitivePath = relitivePath.replaceAll(replace, split).split(split);
absolutePath = absolutePath.replaceAll(replace, split).split(split);
const numberOfBacks = relitivePath.filter(file => file === '..').length;
return [...absolutePath.slice(0, -(numberOfBacks + 1)), ...relitivePath.filter(file => file !== '..' && file !== '.')].join(split);
}
};
const newPath = path.resolveRelativeFromAbsolute('C:/help/hi/hello/three', '../../two/one'); //returns 'C:/help/hi/two/one'
本文标签: javascriptNodeJSconvert relative path to absoluteStack Overflow
版权声明:本文标题:javascript - NodeJS - convert relative path to absolute - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736854293a1955645.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论