fs: 부모 폴더를 찾으려면 어떻게 해야 하나요?
파일을 찾기 위해 부모 레벨 2로 되돌리려면 어떻게 써야 하나요?
fs.readFile(__dirname + 'foo.bar');
이것을 시험해 보세요.
fs.readFile(__dirname + '/../../foo.bar');
상대 경로의 선두에 있는 슬래시를 확인합니다.
path.http://http://nodejs.org/docs/v0.4.10/api/path.html#path.join 를 사용합니다.
var path = require("path"),
fs = require("fs");
fs.readFile(path.join(__dirname, '..', '..', 'foo.bar'));
path.join()
는 선행 슬래시를 처리하여 올바른 작업을 수행합니다.후행 슬래시가 언제 존재하는지, 언제 존재하지 않는지 기억할 필요가 없습니다.
좀 까다롭다는 건 알지만, 지금까지의 모든 답이 다 맞는 건 아니에요.
path.join()의 포인트는 발신자가 사용하는 디렉토리 구분자를 인식할 필요가 없어지는 것입니다(코드 플랫폼에 의존하지 않도록 합니다).
기술적으로 정답은 다음과 같습니다.
var path = require("path");
fs.readFile(path.join(__dirname, '..', '..', 'foo.bar'));
알렉스 웨인의 답변에 코멘트로 추가했을 텐데 아직 충분한 답변이 없어요!
편집: 사용자 1767586의 관찰에 따라
가장 쉬운 방법은 다음과 같습니다.
path.resolve(__dirname, '..', '..');
모듈이 필요할 것 같습니다.(path.normalize
특히)
var path = require("path"),
fs = require("fs");
fs.readFile(path.normalize(__dirname + "/../../foo.bar"));
다른 모듈에서 호출한 경우에도 실행 중인 메인 파일의 위치를 알고 싶다면 @Jason의 코드를 수정할 수 있습니다.
var path = require('path'),
__parentDir = path.dirname(process.mainModule.filename);
fs.readFile(__parentDir + '/foo.bar');
이렇게 하면 실제로 실행 중인 스크립트의 위치를 알 수 있습니다.
부모가 어디에 있는지 확실하지 않은 경우 경로를 얻을 수 있습니다.
var path = require('path'),
__parentDir = path.dirname(module.parent.filename);
fs.readFile(__parentDir + '/foo.bar');
사용할 수 있습니다.
path.join(__dirname, '../..');
이것도 동작합니다.
fs.readFile(`${__dirname}/../../foo.bar`);
전자 앱을 실행 중이고 경로로 부모 폴더를 가져올 수 있습니다.
부모 1 수준:path.resolve(__dirname, '..') + '/'
부모 2레벨:path.resolve(__dirname, '..', '..') + '/'
이 정도면 잘 동작합니다.
path.join(__dirname + '/../client/index.html')
const path = require('path')
const fs = require('fs')
fs.readFile(path.join(__dirname + '/../client/index.html'))
부모 폴더 아래에 있는 파일은 다양한 방법으로 찾을 수 있습니다.
const path = require('path');
const fs = require('fs');
// reads foo.bar file which is located in immediate parent folder.
fs.readFile(path.join(__dirname, '..', 'foo.bar');
// Method 1: reads foo.bar file which is located in 2 level back of the current folder.
path.join(__dirname, '..','..');
// Method 2: reads foo.bar file which is located in 2 level back of the current folder.
fs.readFile(path.normalize(__dirname + "/../../foo.bar"));
// Method 3: reads foo.bar file which is located in 2 level back of the current folder.
fs.readFile(__dirname + '/../../foo.bar');
// Method 4: reads foo.bar file which is located in 2 level back of the current folder.
fs.readFile(path.resolve(__dirname, '..', '..','foo.bar'));
언급URL : https://stackoverflow.com/questions/7083045/fs-how-do-i-locate-a-parent-folder
'programing' 카테고리의 다른 글
외부 키 제약 조건에 사용된 열을 변경할 수 없습니다. (0) | 2022.10.02 |
---|---|
외부 스코프에서 정의된 섀도우 이름의 문제는 무엇입니까? (0) | 2022.10.02 |
JUnit4 fail()은 여기에 있는데 pass()는 어디에 있나요? (0) | 2022.10.02 |
문자열에서 숫자가 아닌 문자( 마침표 및 쉼표 제외)를 제거합니다(숫자, 쉼표 및 마침표를 제외한 모든 문자 제거). (0) | 2022.10.02 |
File 객체를 사용하여 파일 디렉토리를 가져오려면 어떻게 해야 합니까? (0) | 2022.10.02 |