Javascript 使用相对于当前脚本的路径访问文件?(Node.js)
我正在尝试启动一个视频onclick,它位于正在运行的应用程序的子目录中。如果我提供完整路径:“C:\Users\App”或其他任何内容,我可以轻松做到这一点,但我希望能够指向视频,而不管它存储在哪里。如果用户将应用安装在默认位置以外的文件夹中,视频将丢失Javascript 使用相对于当前脚本的路径访问文件?(Node.js),javascript,node.js,Javascript,Node.js,我正在尝试启动一个视频onclick,它位于正在运行的应用程序的子目录中。如果我提供完整路径:“C:\Users\App”或其他任何内容,我可以轻松做到这一点,但我希望能够指向视频,而不管它存储在哪里。如果用户将应用安装在默认位置以外的文件夹中,视频将丢失 “..\videos\video.mp4”似乎不起作用?这完全取决于您打开文件的方式(您使用的函数)。一般来说,如果文件不是绝对路径(在Windows上从C:\开始,在Linux/Mac上从/开始),许多人会将其解析为当前工作目录 您给出的示
“..\videos\video.mp4”似乎不起作用?这完全取决于您打开文件的方式(您使用的函数)。一般来说,如果文件不是绝对路径(在Windows上从
C:\
开始,在Linux/Mac上从/
开始),许多人会将其解析为当前工作目录
您给出的示例路径实际上在开始时使用了。
,因此它上升了一个级别。如果您使用的是文件夹结构,则如下所示:
- script.js
- 录像带
- video.mp4
/videos/video.mp4
(而不是
)
您还可以使用path.resolve('./videos/video.mp4')
将相对路径转换为基于当前工作目录的绝对路径
请注意,当前工作目录是启动它的目录,而不是它所在的位置。例如,如果您位于文件夹C:\Programs
中,并键入node myProgram/script.js
,则当前工作目录将是C:\Programs
,而不是C:\Programs\myProgram
(脚本所在的位置)
在这种情况下,我更喜欢使用\uuu dirname
,它总是指找到它的文件的绝对文件路径,与path.join()
结合使用,以创建指向同一文件夹中某个内容的路径
例如:path.join(\uu dirname,'videos/video.mp4')
将始终解析为类似于C:\Programs\myProgram\videos\video.mp4
(假设脚本文件位于C:\Programs\myProgram
)的内容
这可能是最可靠的方法。您还可以
console.log()
查看其尝试调用的示例的路径,并进行相应调整。这取决于您打开文件的方式(您使用的函数)。通常,如果它不是绝对路径(在Windows上从C:\
开始,在Linux/Mac上从/
开始),许多人会将其解析为当前工作目录
您给出的示例路径实际上在开始时使用了。
,因此它上升了一个级别。如果您使用的是文件夹结构,则如下所示:
- script.js
- 录像带
- video.mp4
/videos/video.mp4
(而不是
)
您还可以使用path.resolve('./videos/video.mp4')
将相对路径转换为基于当前工作目录的绝对路径
请注意,当前工作目录是启动它的目录,而不是它所在的位置。例如,如果您位于文件夹C:\Programs
中,并键入node myProgram/script.js
,则当前工作目录将是C:\Programs
,而不是C:\Programs\myProgram
(脚本所在的位置)
在这种情况下,我更喜欢使用\uuu dirname
,它总是指找到它的文件的绝对文件路径,与path.join()
结合使用,以创建指向同一文件夹中某个内容的路径
例如:path.join(\uu dirname,'videos/video.mp4')
将始终解析为类似于C:\Programs\myProgram\videos\video.mp4
(假设脚本文件位于C:\Programs\myProgram
)的内容
这可能是最可靠的方法。您还可以
console.log()
查看其试图调用的示例的路径,并进行相应调整。嘿,如果你想做一些与路径相关的事情,你可以使用\uu dirname+'/videos/video.mp4'
嘿,如果你想做一些与路径相关的事情,你可以使用\uu dirname+'/videos/video.mp4'