如何格式化表示本地系统上文件路径的字符串

How to format strings that represent file paths on the local system

本文关键字:文件 路径 字符串 系统 格式化 表示      更新时间:2023-09-26

我有一些javascript代码,可以对服务器进行REST调用并检索对象。这些对象有一个名为"path"的属性,该属性指的是本地文件系统中的html文件。所以我有一个类似的ancore标签

<a href="' + result.path +'" class="test">view</a>

在运行时将被替换为类似的东西

<a href="C:'Users'Tim'Downloads'0000048.html" class="test">view</a>

假设我们在windows系统上,路径的值为C:''Users''Merylin''Downloads''0000048.html.

当我点击链接时,它会导航到C:''Users''Merylin''Downloads''0000048.html,但我从浏览器收到错误响应,无法识别地址。但当我重新加载页面时,它显示得很好,但我注意到地址已更改为file:///C:''Users''Merylin''Downloads''0000048.html,请注意附加文件:///。我不希望用户在页面显示之前必须重新加载页面。我只是想知道是否有一些javascript函数可以用来格式化路径,这样浏览器就可以接受它。注意,我对路径的创建方式没有任何控制,我只是使用REST读取它,它可能来自windows或linux。

您可以在文件路径前附加"file:///"。用户只需单击即可获得页面。

我希望这对你有帮助。

正如Yuva所说,要指定本地路径,必须在文件路径前加上"file:///"。

但它仍然不适用于您,因为出于安全原因,大多数浏览器都不允许链接到本地资源。

这就是你第一次尝试时看到的错误。

当你重新加载页面时,它会起作用,因为它已经将url放在地址栏中,因此"重新加载"与手动写入路径并按"回车"非常相似。通常应该有意识地执行的操作,因此大多数浏览器(支持本地文件系统探索的浏览器)不会阻止它

总之,如果你被迫链接本地文件,你将被迫手动重新加载,或者最多使用一些浏览器插件,比如Firefox的Locallink,以便能够直接打开它们(但至少Locallink需要使用上下文菜单选项,这已经确保了你不会犯错误。我不知道是否还有其他插件没有这样做)。

但是,无论如何,如果这些文件有可能从服务器上获得,那么更好的解决方案是从您的应用程序中提供服务。例如,如果您的服务器实现在Node+Express上,则在保存文件的路径上使用静态路由器。