Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как указать путь к файлу с пробелами?


Автор: starav 22.2.2005, 10:41
Доброе время суток!
Может кто подскажет, как можно в JavaScript указать путь к файлу, если в этом пути содержатся пробелы. Например:
"C:\\Program Files\\Microsoft Office\\WINWORD.exe"
Заранее признателен и благодарен.

Автор: Aliance 22.2.2005, 15:06
...Microsoft%20Office...

Автор: starav 22.2.2005, 16:29
Я уже так делал, у меня ничего не получилось. Вот пример ф-ции открывающей Word:

function Welcome() {
path = "C:\\Program Files\\Microsoft Office\\Office\\WINWORD.EXE"
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run(path,5);
}

Пишет, что не может найти файл. Хотя если поменять подставить путь на другой файл, где нет пробелов все работает прекрасно. Может кто подскажет, в чем дело?

Автор: Aliance 22.2.2005, 17:16
Цитата(starav @ 22.2.2005, 16:29)
path = "C:\\Program Files\\Microsoft%20Office\\Office\\WINWORD.EXE

Попробуй так smile

Автор: Гость_SeM 22.2.2005, 17:22
я тоже оч удивлен тем , почему этот объект (WScript.Shell) так не полюбил пробелы.
Но не полюбил - это факт.

попробуй так. у меня работает:

var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run('WINWORD.EXE');


Автор: Aliance 22.2.2005, 17:49
Гость_SeM и starav, разегистрируйтесь на нашем форуме, Вы не пожалеете smile

Автор: Гость_SeM 22.2.2005, 18:15
Можно глупый вопрос.
А как вообще мог помочь "Microsoft%20Office"?? smile

Ведь "%20" перевод пробела на язык конкретно браузера ...

Автор: Aliance 22.2.2005, 18:19
На сколько я знаю - это заменяет пробел в адресе путя к файлу.
К примеру напиши код с изображением из твоего Виндоуза - там пробелы будут так заменяться.

Автор: Гость_SeM 22.2.2005, 18:21
cпасибо.

эх, как много еще в мире непознанного мной smile

Автор: Sardar 22.2.2005, 18:51
Гость_SeM зарегистрируйся smile
Цитата
Ведь "%20" перевод пробела на язык конкретно браузера ..

Символами %число кодируются не допустимые символы в URL. Жаль что не в юникоде. Это спецификация URL(не помню номер RFC...), так в любом другом языке/окружении.
Чот бы закодировать строку можем использовать функцию escape/unescape, но не забываем, что она перекодирует все не допустимые символы, включая слеши smile Таким образом в параметрах URL можно передавать любые данные, предварительно закодировав.

Автор: WIPS 27.7.2006, 18:17
И все же... заработало ли что-нибудь из вышеописанного?
Пробую так:
Код

WSH_Shell.Run('E:\\Program%20Files\\smth.exe');

и так:
Код

WSH_Shell.Run('E:\\Program\%20Files\\smth.exe');

и даже так:
Код

WSH_Shell.Run('E:\Program%20Files\smth.exe');

Результат один: "Не удается найти указанный файл" smile
Если есть пример полного пути с пробелами покажите пожалуйста? 

Автор: Sardar 27.7.2006, 18:39
WIPS, убедись что файл существует.
Попробуй ещё:
Код
WSH_Shell.Run('E:\\Program\ Files\\smth.exe');
WSH_Shell.Run('"E:\\Program Files\\smth.exe"');


Если не поможет - пиши в саппорт мелкософта.  А вообще не серьёзно в 21 веке проблемы с пробелами имет, мелкософт вас не любит smile 

Автор: WIPS 27.7.2006, 19:02
Sardar, огромное спасибо, заработало вот это:
Код

WSH_Shell.Run('"E:\\Program Files\\smth.exe"');
.

Цитата

А вообще не серьёзно в 21 веке проблемы с пробелами имет, мелкософт вас не любит

Согласен, что не серьезно, но что поделать smile
Надеюсь теперь проблема пробелов будет решена, и человечество вздохнет с облегчением! smile
Еще раз спасибо! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)