Я разработал приложение Java с помощью Windows Desktop Search, из которого я могу получить некоторую информацию о файлах на моем компьютере, например URL-адреса ( System.ItemUrl ). Примером такого URL является
file://c:/users/ausername/documents/aninterestingfile.txt
для "нормальных" файлов. В этом поле указываются также URL почтовых элементов, проиндексированных в Outlook или Thunderbird. Элементы Thunderbird (доступны только с использованием vista и seven) также являются файлами (.wdseml). Но URL-адреса элементов внешнего вида начинаются с "mapi: //", например:
mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가
У меня проблема с открытием реального элемента из Java в Outlook с использованием этого URL. Если я копирую / вставляю его в диалог запуска Windows, он работает; это также работает, если я использую «start», за которым следует скопированный / вставленный URL в командной строке.
URL, похоже, закодирован в UTF-16. Я хочу иметь возможность написать такой код:
String url = "mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가";
Runtime.getRuntime().exec("cmd.exe /C start " + url);
Я не работаю, и я пробовал другие решения, такие как:
String start = "start";
String url = "mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가";
FileOutputStream fos = new FileOutputStream(new File("test.bat");
fos.write(start.getBytes("UTF16");
fos.write(url.getBytes("UTF16"));
fos.close();
Runtime.getRuntime().exec("cmd.exe /C test.bat");
безуспешно. Используя приведенное выше решение, файл «test.bat» содержит правильный URL-адрес и команду «start», но запуск «test.bat» приводит к хорошо известному сообщению об ошибке:
'■' is not recognized as an internal or external command, operable program or batch file.
У кого-нибудь есть идея открыть элементы "mapi: //" из Java?