__filename与__dirname

简介: __filename与__dirname

__dirname 是 Node.js 中的一个内置全局变量,它代表的是当前正在执行的 JavaScript 文件所在的绝对目录路径。这个变量在 Node.js 应用程序中非常有用,因为它可以帮助开发者定位到相对于当前文件的其他文件或目录的位置。


例如,在一个 Node.js 模块中,你可以这样使用 __dirname:


// 假设你在 /home/user/project/app.js 文件中运行这段代码
console.log(__dirname);

// 输出将是:'/home/user/project'

这在你需要加载或操作与当前模块同级或下级目录中的文件时特别有用,例如:

const path = require('path');
const filePath = path.join(__dirname, 'config', 'settings.json');

这个例子中,filePath 将会是 /home/user/project/config/settings.json,这就是通过 __dirname 获取当前目录并拼接出一个绝对路径的实际应用。


在 Node.js 中,如果你想要获取当前正在执行的 JavaScript 文件的完整路径(包括文件名),可以结合使用 __filename 和 path 模块来实现。__filename 是另一个内置全局变量,它表示当前正在执行的 JavaScript 文件的绝对路径。


例如:

const path = require('path');

console.log(__filename); // 输出当前文件的完整路径(包括文件名)

// 如果你想获取仅包含文件名的部分,可以使用 path.basename()
console.log(path.basename(__filename)); // 输出当前文件名

// 若要获取当前文件所在的目录路径,可以使用 path.dirname()
console.log(path.dirname(__filename)); // 输出当前文件所在目录的路径(不包括文件名)

这样,如果你想获取当前文件本身的路径信息,可以通过 __filename 得到。


假设你有一个名为 index.js 的 Node.js 文件,该文件位于 /Users/username/projects/my-app/src/index.js 目录下,你可以在该文件中使用 __filename 和 path 模块获取当前文件的相关路径信息:


// 引入 Node.js 的 path 模块
const path = require('path');

// 输出当前文件的完整绝对路径
console.log(__filename);
// 输出: '/Users/username/projects/my-app/src/index.js'

// 输出当前文件的文件名(不含路径)
console.log(path.basename(__filename));
// 输出: 'index.js'

// 输出当前文件所在的目录路径
console.log(path.dirname(__filename));
// 输出: '/Users/username/projects/my-app/src'

这样,你就能够清楚地了解到当前执行脚本的具体位置及其所在目录。

目录
相关文章
|
C#
C# File、FileInfo、Directory、DirectoryInfo
本文主要介绍文件类、文件信息类、目录类、目录信息类的常用属性和方法
51 0
|
6月前
|
编译器 API C语言
C/C++ 获取文件名的方法:分享一些实用的获取文件名的方法和技巧(__FILE__,__builtin_FILE(),__BASE_FILE__等)
C/C++ 获取文件名的方法:分享一些实用的获取文件名的方法和技巧(__FILE__,__builtin_FILE(),__BASE_FILE__等)
647 0
zipfile.BadZipFile: File is not a zip file|4-21
zipfile.BadZipFile: File is not a zip file|4-21
zipfile.BadZipFile: File is not a zip file|4-21
指定的 filePath 文件不存在
指定的 filePath 文件不存在
54 2
fs.readFile() 和 fs.readFileSync()
fs.readFile() 和 fs.readFileSync()
473 0
|
JavaScript 开发者
__dirname和__filename 并不是全局的|学习笔记
快速学习__dirname 和__filename 并不是全局的
__dirname和__filename 并不是全局的|学习笔记
|
JavaScript 开发者
_dirname 和_filename 获取正在执行的 js 文件的路径|学习笔记
快速学习_dirname 和 _filename 获取正在执行的 js 文件的路径
_dirname 和_filename 获取正在执行的 js 文件的路径|学习笔记
Shell函数、系统函数、basename [string / pathname] [suffix] 可以理解为取路径里的文件名称 、dirname 文件绝对路径、自定义函数
Shell函数、系统函数、basename [string / pathname] [suffix] 可以理解为取路径里的文件名称 、dirname 文件绝对路径、自定义函数
Shell函数、系统函数、basename [string / pathname] [suffix] 可以理解为取路径里的文件名称 、dirname 文件绝对路径、自定义函数
FILE
FILE
115 0
成功解决FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\niu\\AppData\\Local\\Temp\\p
成功解决FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\niu\\AppData\\Local\\Temp\\p
成功解决FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\niu\\AppData\\Local\\Temp\\p