2017-09-28 58 views
0

我試圖啓動位於正在運行的應用程序的子目錄中的視頻onclick。如果我提供了完整的路徑:'C:\ Users \ App'或其他任何內容,我可以很容易地做到這一點,但希望能夠指向視頻,無論它存儲在何處。如果用戶將該應用安裝到文件夾中除默認位置之外,視頻會變成了失蹤。Node.js - 在不提供完整路徑的情況下在與app相同的目錄中打開文件?

」 .. \視頻\ video.mp4' 似乎並沒有工作?

+0

嘿,如果你想做一些相對於你的路徑的東西,你可以使用'__dirname +'/ videos/video.mp4'' –

回答

2

這取決於究竟如何要打開的文件(有什麼功能一般來說,如果它不是絕對路徑(通常在Windows上爲C:\或在Linux/Mac上爲/),許多人會將其解析爲當前工作目錄。

示例路徑你給的是真的y在開始時使用..,所以它正在上升一級。如果你的文件夾結構是這樣的:

  • 的script.js
  • 視頻
    • video.mp4

然後你要使用./videos/video.mp4(不是一個.)。

也可以使用path.resolve('./videos/video.mp4')將相對路徑轉換爲基於當前工作目錄的絕對路徑。

請注意,當前的工作目錄是您從啓動的目錄,而不是它所在的目錄。也就是說,如果你在文件夾C:\Programs和類型node myProgram/script.js當前的工作目錄將是C:\Programs,而不是C:\Programs\myProgram(你的腳本在哪裏)。

在這種情況下,我更喜歡使用__dirname,這通常是指它在找到該文件,用path.join()相結合,創造在同一個文件夾的東西路徑的絕對文件路徑。

例如:path.join(__dirname, 'videos/video.mp4')將始終解析爲類似C:\Programs\myProgram\videos\video.mp4(假設腳本文件在C:\Programs\myProgram)。

這可能是最可靠的方法。您也可以通過console.log()查看示例嘗試呼叫的路徑,並進行相應調整。

相關問題