Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用相对于当前脚本的路径访问文件?(Node.js)_Javascript_Node.js - Fatal编程技术网

Javascript 使用相对于当前脚本的路径访问文件?(Node.js)

Javascript 使用相对于当前脚本的路径访问文件?(Node.js),javascript,node.js,Javascript,Node.js,我正在尝试启动一个视频onclick,它位于正在运行的应用程序的子目录中。如果我提供完整路径:“C:\Users\App”或其他任何内容,我可以轻松做到这一点,但我希望能够指向视频,而不管它存储在哪里。如果用户将应用安装在默认位置以外的文件夹中,视频将丢失 “..\videos\video.mp4”似乎不起作用?这完全取决于您打开文件的方式(您使用的函数)。一般来说,如果文件不是绝对路径(在Windows上从C:\开始,在Linux/Mac上从/开始),许多人会将其解析为当前工作目录 您给出的示

我正在尝试启动一个视频onclick,它位于正在运行的应用程序的子目录中。如果我提供完整路径:“C:\Users\App”或其他任何内容,我可以轻松做到这一点,但我希望能够指向视频,而不管它存储在哪里。如果用户将应用安装在默认位置以外的文件夹中,视频将丢失


“..\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'