2017-10-30 18 views
1

私はnode.jselectronで構築されたファイル管理システムに取り組んでいます。Node.jsでSublime Textを開く方法

ファイル管理は、カスタム

は、しかし、私は機能を実装したい...電気ショック療法グループ、フォルダ内のファイルの一覧を表示し、カスタム実行するユーザーは、バッチ処理に、そのような名前の変更などのファイルを、コマンドを使用できますユーザーがファイルをクリックすると、選択したテキストエディタで開きます。

node.jsコードで崇高なテキストエディタ(またはそのようなもの)を開くことができません。

Launch an external application from node.js」や「Is it possible to execute an external program from within node.js?」のような別の質問がありましたが、答えがうまくいきません。

答えのほとんどは、私が望んでいないオペレーティングシステムの「デフォルト」プログラムでファイルを開きます。私は、ファイルを開くプログラムを選択できるようにしたい。

私はその下に、このコードは、ノードからの外部ソフトウェアを開くには、グローバルパス変数を呼び出した:

const exec = require("child_process").exec 
exec('yourApp').unref() 

しかし、あなたはsublime_textを指しファイルのパスと「yourApp」を交換する場合はもちろん、それは動作しません。 .exeのように:

var exec = require('child_process').exec; 
exec('C:/Program Files/Sublime Text 3/sublime_text.exe').unref() 

ご協力いただければ幸いです。あなたがあなたのパスとしてこれを使用する必要が

+0

"C:/ Program Files/Sublime Text 3/sublime_text.exe"スペースに問題があると思います。スペースを取り除いてやり直せますか? (またはエスケープシーケンスを使用する) –

+0

エスケープシーケンスを使用してスペースを削除してみましたが、どちらもうまくいきませんでした。 "C:/ Program Files/Sublime \ Text \ 3/sublime_text.exe" – YAHsaves

+0

このパスを使用してsublime_text.exeファイルを開くにはWindowsの検索バーにコピー&ペーストする "C:/ Program Files /崇高なテキスト3/sublime_text.exe "。それはうまくいくのですか? –

答えて

0

私はそれを考え出しました。それは、最初に外部ファイルを開くために投稿したコードより少しだけコードが必要になることが判明しました。

// Create a child process 
var spawn = require('child_process').spawn; 
var child = spawn('Path_To_.exe', ['parameters', 'Path_To_File']); 

ファイル名内のスペースをエスケープする必要がないと思っている人もいます。

助けてくださった皆様ありがとうございます!

+0

また、答えに明記していないので、追加したい "パラメータ"がわからない場合は、アプリケーション固有のものです。だから私がここでノードを走らせたいのであれば、パラメータに "-v"を入れて、ノードの出力をコンソールに表示させることができます。しかし、私は崇高なテキストに必要なパラメータがないので、この空白を残して、それは素晴らしい仕事をしました! – YAHsaves

0

ありがとう: C:/プログラム\ファイル/崇高\テキスト\ 3/sublime_text.exe

+0

スペースをエスケープする必要があります。それはあなたのために働くはずです –

+0

これは、ハーシュパテルがコメントに示唆したものに似ていましたが、残念ながらそれはうまくいきませんでした。私はあなたの正確な道を試みましたが、行きません。もし私が "exec(" C:/ Program/Files/Sublime \ Text \ 3/sublime_text.exe ")を実行しているなら、役に立つでしょう。電子の「appReady」機能の内部にある。純粋なnode.jsで同じことを試みましたが、同じ結果が返されませんでした。 – YAHsaves

関連する問題