前情提要: 手机伺服用不了 file:// 链接的解决办法 1.0
前文的方法有个缺陷,就是如果文件名或路径含有空格和中文字符,就无法打开文件或资源管理器。
本文就以上缺陷做出改进,将 cmd 命令换成了 powershell 命令,经过我一晚上的折腾,终于成功。因为采用了 powershell 命令,这就意味着本文方法只适用于 Win10 及更高版本操作系统。另外,本文方法不仅仅是手机伺服可以用,PC 端经测试同样适用。
演示视频:
以下是操作步骤:
Step 1. 参考此文,在桌面新建一个 txt 文件,内容如下:
REGEDIT4
[HKEY_CLASSES_ROOT\FileOpen]
@="URL:FileOpen Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\FileOpen\DefaultIcon]
@="\"C:\\Windows\\explorer.exe\""
[HKEY_CLASSES_ROOT\FileOpen\shell]
[HKEY_CLASSES_ROOT\FileOpen\shell\open]
[HKEY_CLASSES_ROOT\FileOpen\shell\open\command]
@="powershell -windowstyle hidden \"Add-Type -AssemblyName System.Web\" ; \"$url=\\\"%1\\\"\" ; \"$url=[System.Web.HttpUtility]::UrlDecode($url)\" ; \"$url=$url.Trimstart(\\\"fileopen\\\")\" ; \"$url=$url.Trimstart(\\\"://\\\")\" ; \"$url=\\\"file:\\\"+$url\" ; explorer \"$url\""
将文件重命名为 fileopen.reg
,双击运行。
Step 2. 参考此文方案二,在 %userprofile%\AppData\Local\Microsoft\Edge\User Data\AutoLaunchProtocolsComponent\组件版本\protocols.json
中增加以下内容:
{
"origins":["http://*:6806"],
"protocol":"fileopen"
},
{
"origins":["http://*:6806"],
"protocol":"cmd"
},
保存。
Step 3. 重启 Edge 浏览器。
完成。
只要在思源中使用形如 fileopen://d:/images/
或 fileopen://d:/images/screenshot.png
这样的链接,即可直接点击打开相应的文件或文件夹。
参考文献:
powershell - 无法在 PowerShell 中找到类型 [System.Web.HttpUtility]
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于