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

时间:2016-05-15 19:01:57

标签: javascript jquery html windows

我将拥有大量的Windows文件"网址"在像这样的json字符串中:

{"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也可以。 感谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

  1. 将json字符串解析为路径数组
  2. 处理循环中的每个路径
    1. 将路径拆分为块
    2. 剥去最后一个块并保存以供日后使用
    3. 将剩余的块放入另一个
    4. 在最后一级创建__files__数组
    5. 将之前保存的文件名放入其中
  3. 唯一棘手的部分可能是步骤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];
    }