Nodejs의 절대 경로에서 파일 이름을 가져오시겠습니까?
Nodejs의 절대 경로에서 파일 이름을 가져오려면 어떻게 해야 합니까?
예."foo.txt"부터"/var/www/foo.txt"
끈 조작으로 작동하는 거 알아요, 예를 들면fullpath.replace(/.+\//, '')하지만 확실한 방법이 있는지 알고 싶어요, 예를 들면file.getName()자바로?
사용basename의 방법path모듈:
path.basename('/foo/bar/baz/asdf/quux.html')
// returns
'quux.html'
다음은 위의 예를 참조한 문서입니다.
파일 이름의 파일 이름 부분을 가져오려면 기본 이름 방법을 사용합니다.
var path = require("path");
var fileName = "C:\\Python27\\ArcGIS10.2\\python.exe";
var file = path.basename(fileName);
console.log(file); // 'python.exe'
확장명 없이 파일 이름을 지정하려면 확장명 없이 이름만 반환하도록 노드에 지시하는 기본 이름 메서드에 확장명 변수(확장명 포함)를 전달할 수 있습니다.
var path = require("path");
var fileName = "C:\\Python27\\ArcGIS10.2\\python.exe";
var extension = path.extname(fileName);
var file = path.basename(fileName,extension);
console.log(file); // 'python'
var path = require("path");
var filepath = "C:\\Python27\\ArcGIS10.2\\python.exe";
var name = path.parse(filepath).name;
console.log(name); //python
var base = path.parse(filepath).base;
console.log(base); //python.exe
var ext = path.parse(filepath).ext;
console.log(ext); //.exe
파일 이름에서 확장자를 제거하는 데 관심이 있는 사용자는 https://nodejs.org/api/path.html#path_path_basename_path_ext 를 사용할 수 있습니다.
path.basename('/foo/bar/baz/asdf/quux.html', '.html');
경로 구분 기호를 이미 알고 있는 경우/(즉, 특정 플랫폼/환경을 위해 작성하는 경우) 질문의 예에서 암시한 것처럼 단순하게 유지하고 구분 기호로 문자열을 나눌 수 있습니다.
'/foo/bar/baz/asdf/quux.html'.split('/').pop()
그것은 정규 표현으로 대체하는 것보다 더 빠르고 깨끗한 이모일 것입니다.
다시 한 번: 특정 환경에 대해 작성하는 경우에만 이 작업을 수행하고, 그렇지 않은 경우에는path모듈, 경로가 놀라울 정도로 복잡하기 때문입니다.예를 들어, Windows는/많은 경우에 그러나 예를 들어.\\?\?공유 네트워크 폴더 등에 사용되는 스타일 접두사입니다.Windows에서는 조만간 위의 방법이 실패할 것으로 예상됩니다.
path이다.nodeJS module속성을 사용하기 위해 패키지를 설치할 필요가 없습니다.
import path from 'path'
const dir_name = path.basename('/Users/Project_naptha/demo_path.js')
console.log(dir_name)
// returns
demo_path.js
NodeJS에서 __filename.split(/\|//).pop()은 모든 OS 플랫폼의 절대 파일 경로에서 파일 이름만 반환합니다.이 정규식 접근 방식을 통해 정규식 스킬을 기억할 수 있는 동시에 API를 기억/가져오기 위해 신경을 써야 하는 이유는 무엇입니까?
따라서 Nodejs는 다음과 같은 기본 글로벌 변수와 함께 제공됩니다.'__fileName'실행 중인 현재 파일을 보유합니다. 제 조언은 __fileName을 임의의 파일에서 서비스로 전달하여 fileName의 검색이 동적으로 되도록 하는 것입니다.
아래에서는 fileName 문자열을 사용하고 다음을 기준으로 분할합니다.path.seppath.sep는 posix 파일 구분자 및 윈도우즈 파일 구분자와 관련된 문제를 방지합니다('/' 및 '\' 관련 문제).그것은 훨씬 깨끗합니다.부분 문자열을 얻고 마지막으로 분리된 이름만 얻고 실제 길이로 3을 빼면 됩니다.
다음과 같은 서비스를 작성할 수 있습니다(참고로 이것은 유형 스크립트이지만 js로 매우 잘 작성할 수 있습니다).
export class AppLoggingConstants {
constructor(){
}
// Here make sure the fileName param is actually '__fileName'
getDefaultMedata(fileName: string, methodName: string) {
const appName = APP_NAME;
const actualFileName = fileName.substring(fileName.lastIndexOf(path.sep)+1, fileName.length - 3);
//const actualFileName = fileName;
return appName+ ' -- '+actualFileName;
}
}
export const AppLoggingConstantsInstance = new AppLoggingConstants();
언급URL : https://stackoverflow.com/questions/19811541/get-file-name-from-absolute-path-in-nodejs
'programing' 카테고리의 다른 글
| Visual Studio의 다른 포트에서 Azure Function 앱을 실행하는 방법 (0) | 2023.05.10 |
|---|---|
| Postgres 9.4의 JSONB 유형 열에 대한 업데이트 작업 수행 방법 (0) | 2023.05.10 |
| VBA에서 사용자 지정 데이터 유형 사용 (0) | 2023.05.10 |
| 유효성 검사 이유입력(거짓)이 작동하지 않습니까? (0) | 2023.05.10 |
| ID 일회용 인터페이스의 올바른 사용 (0) | 2023.05.10 |