2017-09-28 6 views
0

私は実行中のアプリケーションのサブディレクトリにあるビデオonclickを起動しようとしています。 「C:\ Users \ App」などのパス全体を提供しても、どこに保存されているかにかかわらずビデオをポイントできるようにしたい場合は、簡単にこれを行うことができます。デフォルトの場所以外の、映像が欠けて上げるでしょう。Node.js - パス全体を指定せずにappと同じディレクトリにあるファイルを開く?

」.. \ビデオ\ video.mp4' は動作するようには思えないのですか?

+0

あなたのパスに相対的な何かをしたいのであれば、 '__dirname + '/ videos/video.mp4''を使うことができます –

答えて

2

あなたがファイルを開いている正確にどのように依存します(どのような機能あなたが使用しています。)一般的に、絶対パスでないと現在の作業ディレクトリに解決されます(WindowsではC:\、Linux/Macでは/から始まります)。

例のパスあなたは与えた最初は..を使用していますので、1つ上のレベルになります。

  • script.js
  • 動画
    • video.mp4

次にあなたが./videos/video.mp4(ないものを使用する:あなたはフォルダ構造であれば、このようなものです.)。

path.resolve('./videos/video.mp4')を使用して、現在の作業ディレクトリに基づいて絶対パスに相対パスを変換することもできます。

現在の作業ディレクトリはからのディレクトリです。つまり、フォルダC:\Programsに入っていて、node myProgram/script.jsと入力した場合、現在の作業ディレクトリはで、C:\Programs\myProgram(スクリプトは)ではありません。

この場合、私はを使用することをお勧めします。これは、見つかったファイルの絶対ファイルパスを参照し、path.join()と組み合わせて、同じフォルダ内のパスを作成します。

たとえば、path.join(__dirname, 'videos/video.mp4')は、C:\Programs\myProgram\videos\video.mp4(スクリプトファイルがC:\Programs\myProgramの場合)のようになります。

おそらく最も信頼できる方法です。また、console.log()のパスを使用して、コールしようとしている場所の例を表示し、それに応じて調整することもできます。

関連する問題