我使用 Windows 桌面搜索开发了一个 Java 应用程序,我可以从中检索有关我计算机上文件的一些信息,例如 url ( System.ItemUrl )。这种网址的一个例子是
file://c:/users/ausername/documents/aninterestingfile.txt
对于“正常”文件。此字段还提供从 Outlook 或 Thunderbird 索引的邮件项目的 url。Thunderbird 的项目(仅适用于 vista 和 7)也是文件 (.wdseml)。但是 Outlook 的项目 URL 以“mapi://”开头,例如:
mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가
我遇到的问题是使用此 url 从 Outlook 中的 Java 打开真实项目。如果我在 Windows 的运行对话框中复制/粘贴它,它可以工作;如果我在命令行中使用“start”后跟复制/粘贴的 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.
有没有人能够从 Java 打开“mapi://”项目?