javascript - 将 Windows 文件路径组织到文件夹中

标签 javascript jquery html windows

我将在 json 字符串中包含大量 Windows 文件“URL”,如下所示:

{"C:\\Users\\Tyler\Desktop\\File1.jpg','C:\\Users\\Tyler\\Desktop\\Folder1\\File2.png"}

等等等等...... 我需要在网站上以 Windows 资源管理器类型的方式组织这些文件,因此我需要将其组织为如下所示:

{"C:":[{"Users":[{"Tyler":[{"Desktop":[{"File1.jpg","Folder1":[{"File2.png"}]}]}]}]}]}

我需要在客户端 JavaScript 中完成此操作,jquery 也可以工作。 谢谢。

最佳答案

您可能不希望将文件和文件夹混合在一个对象中。我建议使用以下输出结构:

{"C:":{"Users":{"Tyler":{"Desktop":{"__files__":["File1.jpg"],
"Folder1":{"__files__":["File2.png"]}}}}}}

为了获得所需的输出,您可以执行以下步骤:

  1. 将 json 字符串解析为路径数组
  2. 循环处理每条路径
    1. 将路径分割成 block
    2. 删除最后一 block 并保存以供稍后使用
    3. 将剩余的 block 放入另一个 block 中
    4. 在最后一级创建__files__数组
    5. 将之前保存的文件名放入其中

唯一棘手的部分可能是步骤2.3,因此我将提供示例代码:

var result = {};
var parts = ['C:', 'Users', 'Tyler'];

var root = result;
while (parts.length) {
    const part = parts.shift();
    root[part] = root[part] || {};
    root = root[part];
}

关于javascript - 将 Windows 文件路径组织到文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37242476/

相关文章:

javascript - 点击时不显示 div 标签内容

javascript - 谷歌地图模式问题

php - 带有页脚的 Wordpress 网站覆盖一页上的内容。

javascript - 单击时使表格展开

Javascript NiceEdit 配置

jquery - Highcharts:多行制作人员名单

jquery - chzn-select 不需要的下拉列表创建了 jquery

php - 从逗号分隔列表生成一组 HTML 列表项? PHP

关于表单的 Javascript 问题

javascript - React State 与 Props - 为什么状态变化没有反射(reflect)在组件中?