Node js 파일에서 폴더 경로 가져 오기


90

특정 파일이있는 폴더의 경로를 가져 오는 방법이 있습니까?

fs.realpathSync('config.json', []);

다음과 같은 반환

G:\node-demos\7-node-module\demo\config.json

난 그저 필요해

G:\node-demos\7-node-module\demo\ 
or
G:\node-demos\7-node-module\demo\

이것에 대한 API가 있습니까 아니면 문자열을 처리해야합니까?

답변:


164

path.dirname 사용

// onlyPath should be G:\node-demos\7-handlebars-watch\demo
var onlyPath = require('path').dirname('G:\\node-demos\\7-node-module\\demo\\config.json');

1
백 슬래시를 두 배로 늘리지 않으면 임의의 문자를 이스케이프하게됩니다.
Константин Ван 19

1
원래 질문에서와 같이 상대 경로로 시작하는 경우 다음을 수행합니다.let onlyPath = path.dirname(fs.realpathSync('config.json'));
Kip

realpathSync절대 및 상대 경로를 포함 하는 @Kip 방법을 항상 사용하고 싶습니다
joshweir

5

require("path").dirname(……) 경로가 디렉토리를 명시 적으로 지정하지 않으면 중단 됩니다.

require("path").dirname("./..")
// "."

require("path").join(……, "../")대신 사용 을 고려할 수 있습니다 . 후행 구분 기호도 보존합니다.

require("path").join("whatever/absolute/or/relative", "../")
// "whatever/absolute/or/" (POSIX)
// "whatever\\absolute\\or\\" (Windows)
require("path").join(".", "../")
// "../" (POSIX)
// "..\\" (Windows)
require("path").join("..", "../")
// "../../" (POSIX)
// "..\\..\\" (Windows)
require("path").win32.join("C:\\", "../")
// "C:\\"

5

path모듈을 설치 하고 사용하기 만하면

var path = require('path');
path.dirname('G:\\node-demos\\7-node-module\\demo\\config.json')

// Returns: 'G:\node-demos\7-node-module\demo'

이것은 5 년 전에 게시 된 수락 된 답변과 동일 해 보입니다
KyleMit
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.