제공된 경로가 Node.js에서 파일 또는 디렉터리인지 감지하는 방법은 무엇입니까?

Jegongdoen Gyeongloga Node Jseseo Pail Ttoneun Dilegteoliinji Gamjihaneun Bangbeob Eun Mueos Ibnikka



파일 엔터티를 감지하는 것은 특히 애플리케이션이 파일 관리를 처리하거나 사용자 데이터를 특정 디렉터리에 저장할 때 중요합니다. 단일 디렉토리에는 여러 파일이 포함될 수 있으므로 여기에 적용될 수 있는 작업에는 파일을 다른 디렉토리로 이동하거나 모든 상주 파일을 삭제하는 작업이 포함됩니다.

파일도 마찬가지입니다. 해당 작업에는 파일 수정, 파일에 데이터 삽입 또는 단일 삭제가 포함될 수 있습니다. 개발자가 디렉터리에 파일 작업을 적용하거나 그 반대로 파일 작업을 적용하면 전체 응용 프로그램이 엉망이 됩니다.

이 문서에서는 다음 방법을 다루면서 제공된 경로가 파일인지 디렉터리인지 감지하는 접근 방식을 설명합니다.







제공된 경로가 Node.js에서 파일 또는 디렉터리인지 감지하는 방법은 무엇입니까?

“에서 제공하는 두 가지 방법이 있습니다. FS ' 모듈 즉 ' is디렉토리() ' 그리고 ' is파일() ”는 제공된 경로가 파일이나 디렉터리로 연결되는지 확인하는 유일한 목적을 가지고 있습니다. 이러한 방법은 '를 사용하는 동기 및 비동기 시나리오 모두에서 사용됩니다. 통계동기화() ' 그리고 ' 통계() ” 방법. 제공된 경로가 파일 또는 디렉터리로 연결되는지 여부를 감지하는 이 두 가지 방법은 아래에 설명되어 있습니다.



방법 1: 디렉터리 또는 파일로 연결되는 경로를 감지하는 'statSync()' 메서드

통계동기화() ” 메소드가 제공하는 “ FS ” 모듈 기본적으로 동기 작업을 수행하는 데 사용됩니다. 우리의 경우 이 방법은 제공된 경로의 인스턴스를 한 번만 저장합니다. 그런 다음 “ is디렉토리() ' 그리고 ' is파일() ” 지정된 경로가 디렉터리 또는 파일로 연결되는지 여부를 반환하는 메서드입니다.



'statSync()' 메소드의 실제 구현을 위해 아래 코드 조각을 살펴보겠습니다.





const fsObj = 필요하다 ( 'fs' ) ;

경로파일을 보자 = fsObj. 통계동기화 ( '/Users/kahou/Documents/readlineProj/mcu.db' ) ;

콘솔. 통나무 ( '제공된 경로가 파일로 연결됩니까? ' + pathFile. isFile ( ) ) ;

경로 디렉터리 = fsObj. 통계동기화 ( '/사용자/kahou/문서/readlineProj' ) ;

콘솔. 통나무 ( '제공된 경로가 디렉토리로 연결됩니까? ' + pathDir. is디렉토리 ( ) ) ;

위에서 제공한 코드에 대한 설명은 다음과 같습니다.

  • 먼저 '를 가져옵니다. FS ' 모듈을 만들고 해당 인스턴스를 ' fsObj ” 변수입니다.
  • 그런 다음 '를 호출합니다. 통계동기화() ”를 사용하는 방법 fsObj ” 변수를 선택하고 괄호 안에 선택한 경로를 전달합니다. 이 경로의 참조를 ' 경로파일 ” 변수입니다.
  • 다음으로 “ is파일() ” 메소드는 “ 경로파일 ” 제공된 경로가 파일로 연결되는지 여부를 표시하는 부울 값을 반환합니다.
  • 그 후 다시 '를 호출합니다. 통계동기화() ” 메서드를 사용하고 새 경로를 전달합니다.
  • 마지막으로 “ is디렉토리() ” 메소드에 의해 반환된 값이 포함됩니다. 시작동기화() ' 방법.

이제 아래 명령을 사용하여 현재 파일을 실행하십시오.



'노드 <파일 이름>'

예를 들어 'app.js' 파일을 실행했습니다.

출력에는 ' 진실 ”가 반환되면 제공된 경로가 폴더에 대한 경로이고 파일이 감지되었음을 의미합니다.

방법 2: 디렉터리 또는 파일로 연결되는 경로를 감지하는 'stat()' 메서드

비동기식 환경에 완벽하게 작동하는 또 다른 방법은 ' 통계() '에서 제공하는 방법입니다. FS ” 모듈. 또한 동일한 ' is파일() ' 그리고 ' is디렉토리() ” 메소드를 사용하지만 비동기 특성으로 인해 단일 경로가 두 메소드 모두에 전달될 수 있습니다. 여기에는 두 개의 매개변수가 있습니다. 첫 번째는 저장 경로이고 두 번째는 제공된 경로를 통해 일부 작업을 수행하는 콜백 함수입니다.

const fsObj = 필요하다 ( 'fs' ) ,
테스트 경로 = '/사용자/kahou/문서/readlineProj'

// stat() 메소드 사용
fsObj. 통계 ( 테스트 경로 , ( 오류 , statObj ) => {
만약에 ( ! 오류 ) {
만약에 ( statObj. isFile ( ) ) {
콘솔. 통나무 ( ' \N 예! 제공된 경로가 파일로 연결됩니까? ' ) ;
}
또 다른 만약에 ( statObj. is디렉토리 ( ) ) {
콘솔. 통나무 ( ' \N 예! 제공된 경로는 디렉토리로 연결됩니까? ' ) ;
}
}
또 다른
던지다 오류 ;
} ) ;

위에서 제공한 코드에 대한 설명은 다음과 같습니다.

  • 먼저 '를 가져옵니다. FS ' 모듈을 만들고 해당 인스턴스를 ' fsObj ” 변수입니다. “를 생성하세요 테스트 경로 ” 테스터가 제공한 경로를 저장하는 변수입니다.
  • 이제 '를 호출합니다. 통계() ” 메서드를 사용하고 “ 테스트 경로 ”를 첫 번째 매개변수로, 콜백 함수를 두 번째 매개변수로 사용합니다.
  • 콜백 함수에는 ' 오류 ”를 첫 번째 매개변수로 하고 “ statObj ” 두 번째로요. “ 오류 ”에는 실행 중에 발생하는 오류가 포함되어 있으며 “startObj”에는 제공된 경로가 있습니다.
  • 함수 내에서 “ 만약에 ” 오류가 발견되지 않으면 실행되는 문입니다.
  • 중첩된 경우 '문은 '를 할당하는 데 사용됩니다. is파일() ' 그리고 ' is디렉토리() ” 메소드는 “ statObj '.
  • 메소드가 '를 반환하는 경우 진실 ” 그래야만 해당 섹션이 실행되고 그에 따라 성공 메시지가 표시됩니다.

위 스크립트를 실행하면 터미널이 다음과 같이 나타납니다.

보시다시피 이제 제공된 경로가 감지되고 제공된 경로가 디렉터리로 연결되는지 확인합니다.

결론

제공된 경로가 NodeJs의 디렉터리 또는 파일 경로인지 확인하려면 ' is파일() ' 그리고 ' is디렉토리 '가 사용됩니다. 이러한 방법으로 액세스할 수 있는 경로는 ' 통계동기화() ' 그리고 ' 통계() '의 방법' FS ” NodeJs 모듈입니다. 이러한 메서드는 제공된 경로를 각각 동기 및 비동기 방식으로 저장합니다. 이 블로그에서는 제공된 경로가 NodeJS에서 파일 또는 디렉터리로 연결되는지 여부를 감지하는 절차를 설명했습니다.