2017-10-30 7 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 ") .unref();" 전자의 "appReady"기능의 내부. 나는 순수한 node.js로 똑같은 것을 시도했지만, 같은 결과는 응답이 없다. – YAHsaves