Help with hierarchical folder system

I am trying to make a hierarchical system of folders based on the Hornbostel–Sachs system (A hierarchical system of musical instruments). So far I have managed to pull a list of the internet.

Now I need to somehow make this list into folders and sub folders. First problem is, I have not exactly figured out how to make a folder with multiple sub folders.

I do not expect anyone to do the job for me. But some help on how to approach this would be much appreciated!

1 IDIOPHONES 11 Struck idiophones 111 Idiophones struck directly 111.1 Concussion idiophones or clappers 111.11 Concussion sticks or stick clappers 111.12 Concussion plaques or plaque clappers 111.13 Concussion troughs or trough clappers 111.14 Concussion vessels or vessel clappers 111.141 Castanets 111.142 Cymbals 111.2 Percussion idiophones 111.21 Percussion sticks 111.211 (Individual) percussion sticks 111.212 Sets of percussion sticks 111.22 Percussion plaques 111.221 (Individual) percussion plaques 111.222 Sets of percussion plaques 111.23 Percussion tubes 111.231 Individual percussion tubes 111.232 Sets of percussion tubes 111.24 Percussion vessels 111.241 Gongs 111.241.1 (Individual) gongs 111.241.2 Sets of gongs [gong chimes] 111.242 Bells 111.242.1 (Individual) bells 111.242.11 Resting bells 111.242.12 Suspended bells 111.242.121 Suspended bells struck from the outside 111.242.122 Clapper bells 111.242.2 Sets of bells [chimes] (subdivided as 111.242.1) 112 Indirectly struck idiophones 112.1 Shaken idiophones or rattles 112.11 Suspension rattles 112.111 Strung rattles 112.112 Stick rattles 112.12 Frame rattles 112.121 Pendant rattles 112.122 Sliding rattles 112.13 Vessel rattles 112.2 Scraped idiophones 112.21 Scraped sticks 112.211 Scraped sticks without resonator 112.212 Scraped sticks with resonator 112.22 Scraped tubes 112.23 Scraped vessels 112.24 Scraped wheels or cog rattles 112.3 Split idiophones 12 Plucked idiophones 121 In the form of a frame 121.1 Clack idiophones (cricri) 121.2 Guimbardes (Jews' harps) 121.21 Idioglot guimbardes 121.22 Heteroglot guimbardes 121.221 (Single) heteroglot guimbardes 121.222 Sets of heteroglot guimbardes 122 In board- or comb-form 122.1 With laced-on lamellae 122.11 Without resonator 122.12 With resonator 122.2 With cut-out lamellae (musical boxes) 13 Friction idiophones 131 Friction sticks 131.2 Sets of friction sticks 131.21 Without direct friction 131.22 With indirect friction 132 Friction plaques 132.1 (Individual) frinction plaques 132.2 Sets of friction plaques [livika] 133 Friction vessels 133.1 (Individual) friction vessels 133.2 Sets of friction vessels 14 Blown idiophones 141 Blown sticks 141.1 (Individual) blown sticks 141.2 Sets of blown sticks 142.1 (Individual) blown plaques 142.2 Sets of blown plaques 2 MEMBRANOPHONES 21 Struck drums 211 Drums struck directly 211.1 Kettle drums (timpani) 211.11 (Separate) kettle drums 211.12 Sets of kettle drums 211.2 Tubular drums 211.21 Cylindrical drums 211.211 Single-skin cylindrical drums 211.211.1 Open cylindrical drums 211.211.2 Closed cylindrical drums 211.212 Double-skin cylindrical drums 211.212.1 (Individual) cylindrical drums 211.212.2 Sets of cylindrical drums 211.22 Barrel-shaped drums (to be subdivided like 211.21) 211.23 Double-conical drums 211.24 Hourglass-shaped drum (to be subdivided like 211.21) 211.25 Conical drums (to be subdivided like 211.21) 211.26 Goblet-shaped drums (to be subdivided like 211.21) 211.3 Frame drums 211.31 Frame drums (without handle) 211.311 Single-skin frame drums 211.312 Double-skin frame drums 211.32 Frame drum with handle 211.321 Single-skin frame drums with handle 211.322 Double-skin frame drums with handle 212 Rattle drums (sub-divisions as for drums struck directly, 211) 22 Plucked drums 23 Friction drums 231 Friction drums with stick 231.1 With inserted stick 231.11 Friction drums with fixed stick 231.12 Friction drums with semi-fixed stick 231.13 Friction drums with free stick 231.2 With tied stick 232 Friction drum with cord 232.1 Stationary friction drum with cord 232.11 Single-skin stationary drums with friction-cord 232.12 Double-skin stationary drums with friction-cord 232.2 Friction drum with whirling stick 233 Hand friction drums 24 Singing membranes (Kazoos) 241 Free kazoos 242 Tube- or vessel-kazoos 3 CHORDOPHONES 31 Simple chordophones or zithers 311 Bar zithers 311.1 Musical bows 311.11 Idiochord musical bows 311.111 Mono-idiochord musical bows 311.112 Poly-idiochord musical bows or harp-bows 311.12 Heterochord musical bows 311.121 Mono-heterochord musical bows 311.121.1 Without resonator 311.121.11 Without tuning noose 311.121.12 With tuning noose 311.121.2 With resonator 311.121.21 With independent resonator 311.121.22 With resonator attached 311.121.221 Without tuning noose 311.121.222 With tuning noose 311.122 Poly-heterochord musical bows 311.122.1 Without tuning noose 311.122.2 With tuning noose 311.2 Stick zithers 311.21 Musical bow cum stick 311.22 (True) stick zithers 311.221 With one resonator gourd 311.222 With several resonator gourds 312 Tube zithers 312.1 Whole-tube zithers 312.11 Idiochord (true) tube zithers 312.12 Heterochord (true) tube zithers 312.121 Without extra resonator 312.122 With extra resonator 312.2 Half-tube zithers 312.21 Idiochord half-tube zithers 312.22 Heterochord half-tube zithers 313 Raft zithers 313.1 Idiochord raft zithers 313.2 Heterochord raft zithers 314 Board zithers 314.1 True board zithers 314.11 Without resonator 314.12 With resonator 314.121 With resonator bowl 314.122 With resonator box (box zither) 314.2 Board zither variations 314.21 Ground zithers 314.22 Harp zithers 315 Trough zithers 315.1 Without resonator 315.2 With resonator 316 Frame zithers 316.1 Without resonator 316.2 With resonator 32 Composite chordophones 321 Lutes 321.1 Bow lutes [pluriarc] 321.2 Yoke lutes or lyres 321.21 Bowl lyres 321.22 Box lyres 321.3 Handle lutes 321.31 Spike lutes 321.311 Spike bowl lutes 321.312 Spike box lutes or spike guitars 321.313 Spike tube lutes 321.32 Necked lutes 321.321 Necked bowl lutes 321.322 Necked box lutes or necked guitars 322 Harps 322.1 Open harps 322.11 Arched harps 322.12 Angular harps 322.2 Frame harps 322.21 Without tuning action 322.211 Diatonic frame harps 322.212 Chromatic frame harps 322.212.1 With the strings in one plane 322.212.2 With the strings in two planes crossing one another 322.22 With tuning action 322.221 With manual action 322.222 With pedal action 323 Harp lutes 4 AEROPHONES 41 Free aerophones 411 Displacement free aerophones 412 Interruptive free aerophones 412.1 Idiophonic interruptive aerophones or reeds 412.11 Concussion reeds 412.12 Percussion reeds 412.121 Individual percussion reeds 412.122 Sets of percussion reeds 412.13 Free reeds 412.131 (Individual) free reeds 412.132 Sets of free reeds 412.14 Ribbon reeds 412.2 Non-idiophonic interruptive instruments 412.21 Rotating aerophones 412.22 Whirling aerophones 413 Plosive aerophones 42 Wind instruments proper 421 Edge instruments or flutes 421.1 Flutes without duct 421.11 End-blown flutes 421.111 (Single) end-blown flutes 421.111.1 Open single end-blown flutes 421.111.11 Without fingerholes 421.111.12 With fingerholes 421.111.2 Stopped single end-blown flutes 421.111.21 Without fingerholes 421.111.22 With fingerholes 421.112 Sets of end-blown flutes or panpipes 421.112.1 Open panpipes 421.112.11 Open (raft) panpipes 421.112.12 Open bundle (pan-) pipes 421.112.2 Stopped panpipes 421.112.3 Mixed open and stopped panpipes 421.12 Side-blown flutes 421.121 (Single) side-blown flutes 421.121.1 Open side-blown flutes 421.121.11 Without fingerholes 421.121.12 With fingerholes 421.121.2 Partly-stopped side-blown flutes 421.121.3 Stopped side-blown flutes 421.121.31 Without fingerholes 421.121.311 With fixed stopped lower end 421.121.312 With adjustable stopped lower end (piston flutes) 421.121.32 With fingerholes 421.122 Sets of side-blown flutes 421.122.1 Sets of open slide-blown flutes 421.122.2 Sets of stopped side-blown flutes 421.13 Vessel flutes (without distinct beak) 421.2 Flutes with duct or duct flutes 421.21 Flutes with external duct 421.211 (Single) flutes with external duct 421.211.1 Open flutes with external duct 421.211.11 Without fingerholes 421.211.12 With fingerholes 421.211.2 Partly-stopped flutes with external duct 421.211.3 Stopped flutes with external duct 421.212 Sets of flute with external duct 421.22 Flutes with internal duct 421.221 (Single) flutes with internal duct 421.221.1 Open flutes with internal duct 421.221.11 Without fingerholes 421.221.12 With fingerholes 421.221.2 Partly-stopped flute with internal duct 421.221.3 Stopped flutes with internal duct 421.221.31 Without fingerholes 421.221.311 With fixed stopped lower end 421.221.312 With adjustable stopped lower end 421.221.4 Vessel flutes with duct 421.221.41 Without fingerholes 421.221.42 With fingerholes 421.222 Sets of flutes with internal duct 421.222.1 Sets of open flutes with internal duct 421.222.11 Without fingerholes 421.222.12 With fingerholes 421.222.2 Sets of partly-stopped flutes with internal duct 421.222.3 Sets of stopped flutes with internal duct 422 Reedpipes 422.1 Oboes 422.11 (Single) oboes 422.111 With cylindrical bore 422.111.1 Without fingerholes 422.111.2 With fingerholes 422.112 With conical bore 422.12 Sets of oboes 422.121 With cylindrical bore 422.122 With conical bore 422.2 Clarinets 422.21 (Single) clarinets 422.211 With cylindrical bore 422.211.1 Without fingerholes 422.211.2 With fingerholes 422.212 With conical bore 422.22 Sets of clarinets 422.3 Reedpipes with free reeds 422.31 Single pipes with free reed 422.32 Double pipes with free reeds 423 Trumpets 423.1 Natural trumpets 423.11 Conches 423.111 End-blown 423.111.1 Without mouthpiece 423.111.2 With mouthpiece 423.112 Side-blown 423.12 Tubular trumpets 423.121 End-blown trumpets 423.121.1 End-blown straight trumpets 423.121.11 Without mouthpiece 423.121.12 With mouthpiece 423.121.2 End-blown horns 423.121.21 Without mouthpiece 423.121.22 With mouthpiece

Oh, I forgot to say; I don't want the actual numbers in the folder names. I just included them to illustrate the system of the hierarchy :wink:

I think you need a script to do that, not necessarily a script written to run in DO though. If the indentation is as clean and tidy as it looks, it probably can be used to detect what folders are to be created where in the resulting hierarchical folder structure. That's the first approach I'd go for at least, so totally ignoring the numbering scheme. Maybe someone comes up with a more elegant idea and can make use of the numbers ?! o)

I have no Idea how to write scripts, but I am fairly comfortable with sublime text, word and excel. I could just rewrite the list so that Dopus understands how to create the folders.

I just haven't figured out how to make Dopus make multiple subfolders, on the same level, under a folder. E.g:

Main folder
--Subfolder
----Folder 1
----Folder 2
----Folder 3

Pasting this into the Create Folder dialog (in multi-folder mode, of course) will create that structure:

Main folder Main folder\Subfolder Main folder\Subfolder\Folder 1 Main folder\Subfolder\Folder 2 Main folder\Subfolder\Folder 3

Doing it by indentation instead would need some scripting, I think.

So I got some help from stackoverflow and used this batch script, in case anyone is curious in the future. In other words, I did not use the built-in function in Dopus, but a separate batch file. :smiley:

[code]@echo off
setlocal EnableDelayedExpansion

set prevLevel=-1
for /F "tokens=1*" %%a in (test.txt) do (
set "hierarchy=%%a"
set "hierarchy=!hierarchy:.=!"
set /A thisLevel=prevLevel+1
for /F "tokens=1,2" %%i in ("!prevLevel! !thisLevel!") do (
if "!hierarchy:~%%j,1!" neq "" (
rem Level forward: create child directory and enter to it
md "%%b"
cd "%%b"
set /A prevLevel+=1
) else if "!hierarchy:~%%i,1!" neq "" (
rem Same level: create brother directory and enter to it
cd ..
md "%%b"
cd "%%b"
) else (
rem Level backward: first go back to corresponding parent directory
for /L %%n in (%%i,-1,0) do (
if "!hierarchy:~%%n,1!" equ "" (
cd ..
set prevLevel=%%n
)
)
cd ..
set /A prevLevel-=1
rem Then create the directory at this place and enter to it
md "%%b"
cd "%%b"
)
)
)[/code]