如果我有文件系统路径,我可以在资源管理器(在Windows)或Finder(在OS X)上打开一个窗口,显示路径导向的文件夹?从网页在finder/explorer中打开一个文件夹?
Cookie是针对跨平台和/或无插件的答案的。
如果我有文件系统路径,我可以在资源管理器(在Windows)或Finder(在OS X)上打开一个窗口,显示路径导向的文件夹?从网页在finder/explorer中打开一个文件夹?
Cookie是针对跨平台和/或无插件的答案的。
您需要能够从浏览器运行新的进程。有几种方法可以做到这一点。我将展示JNLP的方式来做到这一点。
创建一个JNLP文件如下:
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://example/" href="jnlpTest.jnlp">
<information>
<title>Some Title</title>
<vendor>Some Vendor</vendor>
<homepage href="http://example/" />
<description>Some Description</description>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+" />
<jar href="jnlpTest.jar" />
</resources>
<application-desc main-class="MainClass" />
</jnlp>
从下面创建一个jnlpTest.jar:
public class MainClass {
public static void main(String args[]) {
Runtime rt = Runtime.getRuntime();
try {
//TODO - different exec for Mac
rt.exec("explorer.exe");
} catch (IOException e) {
//exception
}
}
}
:与清单:
Manifest-Version: 1.0
Main-Class: MainClass
登录您的JNLP罐子:
keytool -genkey -keystore testKeys -alias jdc
jarsigner -keystore testKeys jnlpTest.jar jdc
将jar和jnlp文件放在Web服务器上。确保MIME类型JNLP的服务为application/x-java-jnlp-file
。
参考用于制造JNLP:现在http://java.dzone.com/articles/java-web-start-jnlp-hello
当用户点击您的JNLP链接就会下载JAR和询问是否它是确定运行。运行它将导致浏览器窗口打开。我知道这不是最好的解决方案,但任何解决方案都需要询问用户在他们的机器上执行代码的权限。
对于node-webkit(NW.js),可以使用用户...
var gui = require("nw.gui");
document.querySelector("[data-location]").onclick = function() {
gui.Shell.showItemInFolder(__dirname + '/content/project/' + this.textContent);
};
这东西模糊真的应该是一个评论,不是答案。如果Silverlight的Mac端口包含COM,我也会非常惊讶。 – millimoose 2012-02-28 16:16:10
我开始在评论中提到这一点,但我确实想要添加更多信息,而不仅仅是“尝试此网址”。这是一个起点,如果有帮助的话,如果不是不理我的答案。 – 2012-02-28 16:18:45
@DMoses链接的文章在开头说:“应该指出的是,这些功能只能在提升的权限外浏览器模式下使用,并且不能在浏览器中使用。”你是否完全与这个问题有关? – 2012-02-28 16:19:15