Node.js에서 상위 디렉토리 이름 가져오기
Node.js를 사용하고 있으며 파일의 상위 디렉터리 이름을 가져오려고 합니다.나는 그 파일을 가지고 있습니다."../test1/folder1/FolderIWant/test.txt"
.
갖고싶다"FolderIWant"
.
시도해 본 결과:
var path = require('path');
var parentDir = path.dirname(filename);
하지만 그것은 돌아옵니다.../test1/folder1/FolderIWant
.
원하는 것은 다음과 같습니다.
path.basename(path.dirname(filename))
대신 @danielwolf의 대답을 사용하는 것이 좋습니다.
사용하다split()
그리고.pop()
:
path.dirname(filename).split(path.sep).pop()
Daniel Wolf의 대답은 정확합니다. 또한 부모 dir의 전체 경로를 원하는 경우:
require('path').resolve(__dirname, '..')
const path = require("path")
path.dirname(path.basename(__dirname))
process.mainModule
속성이 에서 사용되지 않습니다.v14.0.0
foo.js를 실행하는 경우node foo.js
(예: 일부 dir/foo.js"),
const path = require("path");
module.exports = path.dirname(require.main.filename);
결과: some dir
여기서 답변은 어느 정도 효과가 있었지만, 인기 있는 앱-루트 경로 모듈을 사용하는 것이 경로를 지정하는 데 더 나은 앵커 포인트라는 것을 알게 되었습니다.
import { path as arp } from 'app-root-path'
import path from 'path'
const root = path.resolve(arp, '../') // the parent of the root path
export const rootDirname = root
다음과 같은 사용 예:
import { rootDirname } from './functions/src/utils/root-dirname'
import { getJsonFromFile } from './app/utils/get-json-from-file'
const firebaseJson = getJsonFromFile(`${rootDirname}/firebase.json`)
여기서 최선의 답변은 아니지만 다른 답변에서 다루지 않는 옵션일 수 있습니다.
전형적인__dirname
솔루션이 ESM 범위에서 작동하지 않습니다.디렉터리 트리에서 한 단계 높은 수준으로 이동하기 위해 다음과 같은 해결책을 생각해냈습니다.
import { fileURLToPath } from "url";
import path from "path";
const __filename = fileURLToPath(import.meta.url);
// First find out the __dirname, then resolve to one higher level in the dir tree
const __dirname = path.resolve(path.dirname(__filename), "../");
파일이 위치한 절대 디렉터리 경로만 필요한 경우 다음을 제외할 수 있습니다.path.resolve()
불러.
const path = require('path');
module.exports = path.dirname(process.mainModule.filename)
루트 디렉터리를 가져오려면 이 위치를 사용하십시오.
2019년 06월 06일 현재 노드를 사용하다가 방금 접속한 문제가 발생했습니다.filename
그래서 그 대신에, 저는 그것을 약간 수정하고 다음과 같이 사용했습니다.
path.dirname(__filename).split(path.sep).pop()
이제 전체 경로가 아닌 현재 디렉터리의 디렉터리 이름을 얻게 됩니다.이전 답변들이 다른 사람들에게 도움이 될 수도 있는 것처럼 보이지만, 저에게는 노드가 상수 또는 변수를 찾고 있었지만 찾을 수 없었기 때문에 문제가 발생했습니다.
경로와 같은 노드 모듈이 없는 가장 간단한 방법.루트 폴더 이름을 가져오는 방법은 다음과 같습니다.
var rootFolder = __dirname.split('/').pop();
console.log(rootFolder);
__dirname
현재 실행 중인 파일이 들어 있는 디렉터리의 절대 경로를 알려주는 환경 변수입니다.
다음과 같은 간단한 코드로 부모만 가져옵니다.
let parentFolder = __dirname.split('\\').pop();
나의 산출물__dirname
console.log({ path: __dirname, parentDirectory: __dirname.split('\\').pop()});
{
path: 'C:\\Development\\Guides\\ParentFolder',
parentDirectory: 'ParentFolder'
}
언급URL : https://stackoverflow.com/questions/42956127/get-parent-directory-name-in-node-js
'programing' 카테고리의 다른 글
.sql 스크립트 내의 MYSQL 클라이언트에서 전달된 -D 매개 변수 값 사용 (0) | 2023.09.04 |
---|---|
웹 서버에 파일 쓰기 - ASP.NET (0) | 2023.09.04 |
새 뷰 컨트롤러를 만든 후 뷰 컨트롤러 파일을 만들려면 어떻게 해야 합니까? (0) | 2023.09.04 |
Rails/MariaDB 백엔드에서 직렬화된 데이터를 업데이트하려면 어떻게 해야 합니까? (0) | 2023.09.04 |
데이터를 제출하지 않는 사용 불가능한 양식 필드 (0) | 2023.09.04 |