在我的插件中,我允许用户浏览磁盘上的图像。执行此操作时,返回的文件路径(使用内联选项文件控件)的格式为C:\blah\blah\blah.png
。然后我使用此文件路径并使用此路径设置样式表:
list-style-image: url("' + newValRep + '")
但是,如何以正确的方式将其转换为file:////C:/blah/blah/blah.png
,因为如果我使用第一种方式,它在我的css样式表中不起作用。
目前我正在做这个正则表达式:
var newValRep = 'file:///' + newuri.replace(/\\/g, '/');
但这绝对不是正确的方式,因为它是特定于Windows的。
我试过了:
new FileUtils.File(newuri).path
但这不会给file:///
表格OS.Path.normalize(newuri)
但同样的问题Services.io.newURI(newuri, null, null).spec
但同样的问题答案 0 :(得分:1)
你是如此亲密: - )
var uri = Services.io.newFileURI(somensILocalFile)
console.log(uri.spec)
答案 1 :(得分:0)
供其他人参考。
感谢@paa我一直在使用OS.Path.toFileURI
。但是我需要uir的基本名称,并且对文件执行OS.Path.basename
uri不会按预期返回。此文件的示例uri:file:///C:/Users/Vayeate/AppData/Roaming/Mozilla/Firefox/android_normal.png
它将返回基本名称:/Users/Vayeate/AppData/Roaming/Mozilla/Firefox/android_normal.png
我想要android_normal.png
。所以我不得不反向toFileURI
和OS.File附带如下所示:http://mxr.mozilla.org/mozilla-release/source/toolkit/components/osfile/modules/ospath_unix.jsm#162
有一个名为OS.Path.fromFileURI
成功执行OS.Path.basename(OS.Path.fromFileURI(path))
会返回android_normal.png
。