Hi Luke,
It seems you need Locking and not much of a threading. Locking would be required as your object/direcotry will be accessed by multiple threads.
Currently I am unable to throw more ideas on here but I would do that soon.
Meanwhile, you can google on how to locking in
Java and think more while anybody else can give you more details about locking and all..
Regards
Maulin