使用 webkitRelativePath 时,路径分隔符操作系统特定吗?

Pau*_*ler 5 html javascript

我正在尝试在有限的浏览器支持(即基于 Chrome 或 Chromium 的浏览器)的情况下实现目录上传功能。为此,我使用HTMLInput带有该webkitdirectory属性的元素。我需要知道的是webkitRelativePath所选File对象的属性中的目录分隔符是否使用操作系统特定的目录分隔符。看起来根据这个 W3C 草案,它被指定为始终是 unix 样式分隔符,但最好能确认这一点(如果 FireFox 也可以的话)。不幸的是MDN 文档没有指定。

这是演示该功能的片段:

var dirInput = document.getElementById('dirInputTest');
var output = document.getElementById('dirListing');
dirInput.addEventListener(
  'change',
  function () {
    var files = Array.from(dirInput.files);
    output.innerHTML = '';
    for (var i = 0; i < files.length; i++) {
      output.innerHTML += files[i].webkitRelativePath + '\n';
    }
  }
);
Run Code Online (Sandbox Code Playgroud)
<body>
<input id="dirInputTest" type="file" webkitdirectory />
<pre id="dirListing">
</pre>
</body>
Run Code Online (Sandbox Code Playgroud)

Pau*_*ler 6

因此,我开始启动 Windows 虚拟机,并且可以确认所有主要浏览器(Chrome、Fire-Fox、Edge)都使用正斜杠路径分隔符,无论操作系统如何(我没有测试 Opera 或 Internet Explorer)。