파일도 마찬가지입니다. 해당 작업에는 파일 수정, 파일에 데이터 삽입 또는 단일 삭제가 포함될 수 있습니다. 개발자가 디렉터리에 파일 작업을 적용하거나 그 반대로 파일 작업을 적용하면 전체 응용 프로그램이 엉망이 됩니다.
이 문서에서는 다음 방법을 다루면서 제공된 경로가 파일인지 디렉터리인지 감지하는 접근 방식을 설명합니다.
제공된 경로가 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에서 파일 또는 디렉터리로 연결되는지 여부를 감지하는 절차를 설명했습니다.