I am using appjs * and I want to execute a command to open a folder.
var path = __dirname + '/folder to open/';
// path = C:\Program Files\myapplication/folder to open/
require("child_process").exec("start " + path);
Could not find file C:\Program
I already tried to escape the spaces, that didn't work.
var path = __dirname + '/folder to open/';
path = path.replace(' ', '\ ');
// path = C:\Program Files\myapplication/folder to open/
require("child_process").exec("start " + path);
When I put the path between quotes, No folder is opened, only another prompt.
var path = "\"" + __dirname + "/folder to open/\"";
path = path.replace(' ', '\ ');
// path = "C:\Program Files\myapplication/folder to open/"
require("child_process").exec("start " + path);
Related bug https://github.com/isaacs/npm/pull/2479
Does anyone has a fix or a workaround?
* link removed
To open a path than contains spaces, you must replace with a double backslash.
In your code you escaped the space character:
"\ "
What you need to do is escape the backslash character so it makes it into the output string:
"\\ "
Try this:
var path = __dirname + '/folder to open/';
// Notice the double-backslashes on this following line
path = path.replace(/ /g, '\\ ');
require("child_process").exec("start " + path);
Well, I fixed it.
Or something like it.
Instead of using
"start " + path
I used
"%SystemRoot%\\explorer.exe \"" + path + "\""
Notice the quotes and the forward slashes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With