Skip to content

Node.js 파일 경로

시스템 파일 경로

시스템의 모든 파일에는 경로가 있습니다. Linux 및 macOS에서 경로는 다음과 같을 수 있습니다. /users/joe/file.txt

반면에 Windows 컴퓨터는 C:\users\joe\file.txt와 같이 다른 구조를 가지고 있습니다.

애플리케이션에서 경로를 사용할 때는 이러한 차이점을 고려해야 하므로 주의해야 합니다.

path 모듈 사용

다음과 같이 파일을 사용하여 이 모듈을 포함합니다.

javascript
const path = require('node:path')

그리고 해당 메서드 사용을 시작할 수 있습니다.

경로에서 정보 가져오기

경로가 주어지면 다음과 같은 메서드를 사용하여 정보를 추출할 수 있습니다.

  • dirname: 파일의 상위 폴더를 가져옵니다.
  • basename: 파일 이름 부분을 가져옵니다.
  • extname: 파일 확장자를 가져옵니다.

예시

javascript
const path = require('node:path')
const notes = '/users/joe/notes.txt'

path.dirname(notes) // /users/joe
path.extname(notes) // .txt
javascript
import path from 'node:path'
const notes = '/users/joe/notes.txt'

path.dirname(notes) // /users/joe
path.extname(notes) // .txt

basename에 두 번째 인수를 지정하여 확장자를 제외한 파일 이름을 가져올 수 있습니다.

javascript
path.basename(notes, path.extname(notes)) // notes

경로 작업

path.join()을 사용하여 경로의 두 개 이상의 부분을 결합할 수 있습니다.

javascript
path.join('/users', 'joe', 'file.txt') // /users/joe/file.txt

path.resolve()를 사용하여 상대 경로의 절대 경로 계산을 가져올 수 있습니다.

javascript
path.resolve('joe.txt') // 내 홈 폴더에서 실행하는 경우 /Users/joe/joe.txt
path.resolve('tmp', 'joe.txt') // 내 홈 폴더에서 실행하는 경우 /Users/joe/tmp/joe.txt

이 경우 Node.js는 단순히 현재 작업 디렉터리에 /joe.txt를 추가합니다. 두 번째 매개변수를 폴더로 지정하면 resolve는 첫 번째 매개변수를 두 번째 매개변수의 기준으로 사용합니다.

첫 번째 매개변수가 슬래시로 시작하면 절대 경로임을 의미합니다.

javascript
path.resolve('/etc', 'joe.txt') // /etc/joe.txt

path.normalize(). 또는 ..와 같은 상대 지정자 또는 이중 슬래시가 포함된 경우 실제 경로를 계산하려는 또 다른 유용한 함수입니다.

javascript
path.normalize('/users/joe/../test.txt') // /users/test.txt

resolvenormalize는 모두 경로가 존재하는지 여부를 확인하지 않습니다. 그저 받은 정보를 기반으로 경로를 계산할 뿐입니다.