gpt4 book ai didi

java - 我们可以使用 Java Web 应用程序在客户端计算机上打开共享驱动器吗?

转载 作者:行者123 更新时间:2023-12-02 10:48:08 25 4
gpt4 key购买 nike

我的 Java Web 应用程序部署在服务器计算机上。我有一个共享驱动器,可以从客户端计算机和服务器计算机访问。使用下面的代码我可以在服务器计算机上打开该驱动器:

Spring Controller 代码:

     @RequestMapping(value = "/openAttachment", method = RequestMethod.POST)
public ResponseEntity<List<String>>
OpenFolder(@RequestParam("workflowName") String workflowName ) throws
IOException, InterruptedException {
String folderPath =Constants.workFlowAttachPath+workflowName;
if ((new File(folderPath)).exists()) {
Process p = Runtime
.getRuntime()
.exec("rundll32 url.dll,FileProtocolHandler "+folderPath);
p.waitFor();

}
List<String> msgList = new ArrayList<> ();
msgList.add(Constants.SUCCESSFUL);
return new ResponseEntity<List<String>>(msgList, HttpStatus.OK);
}

这里使用的常量是:

public static final String workFlowAttachPath="\\\\10.82.31.27\\Area20\\Attachment\\";      

但我无法从本地计算机上的本地计算机(浏览器)打开此文件夹。这可能吗 ?如果可以的话怎么办?提前致谢。

最佳答案

不,你不能那样做。如果您同意将 Windows 和系统状态硬编码到代码中,则可以将该文件夹安装到驱动器盘符上,例如驱动器“N:”,然后使用路径:

psf String workFlowAttachPath = "N:\\Attachment\\";

您可以使用以下命令将其安装在 Windows 上:

net use N: \\\\10.82.31.27\\Area20 /PERSISTENT:YES

但我的内存力不够了,因此您必须检查 net use windows 命令上的文档以获取详细信息。您应该能够通过 Runtime.getRuntime().exec() 调用“net.exe”,但我建议不要这样做。您已经对 IP 进行了硬编码,谁知道这段代码中的内容,不妨也注意在外部安装 N: 驱动器。这避免了必须在 Java 代码中处理来自 net 命令的错误,这是众所周知的困难; windows 喜欢翻译它的命令,并且可能会抛出很多奇怪的错误,编写代码从 java 调用 windows 实用程序并理解它们的输出是一项不简单的工作。

关于java - 我们可以使用 Java Web 应用程序在客户端计算机上打开共享驱动器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52384920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com