.Q.en[dir;table]
.Q.ens[dir;table;name]

Where

the function

.Q.ens allows enumeration against domains (and therefore filenames) other than sym.

q)([]sym:`mysym$`a`b`c)~.Q.ens[`:db;([]sym:`a`b`c);`mysym]

Tables splayed across a directory must be fully enumerated and not keyed. The solution is to enumerate columns of type varchar before saving the table splayed.

Locking ensures two processes do not write to the sym file at the same time

Apart from that, it is up to you to manage.