2016-05-15 3 views
0

Я буду иметь огромное количество файлов Windows «URL» в строке JSON как это:Организация пути к файлам Windows, в папках

{"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

Первый образец кода не является действительным JSON, а второй недействительным JS. Не могли бы вы обновить вопрос с действительными примерами? –

+0

Хорошо, это должно быть правильно ... –

+0

Что вы думаете? вы хотите, чтобы кто-то написал вам код и решил вашу задачу или что? – Farside

ответ

1

Возможно, вам не захочется смешивать файлы и папки в одном объекте. Я хотел бы предложить следующую выходную структуру:

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

Для того, чтобы получить желаемый выход, Вы можете пройти через эти шаги:

  1. разбора JSON строку в массив путей
  2. процесса каждый путь в петля
    1. раскол путь на куски
    2. полосы последний кусок и сохранить его для последующего использования
    3. пут оставшиеся куски один в другой
    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]; 
} 
+0

Пример кода, кажется, ничего не возвращает мне. –

+0

Вы проверили 'result' var? –

+0

Теперь он работает, спасибо :) –

Смежные вопросы