What I came up with...
My directory is stored in an n-array tree. What I decided to do is implement binary searches at each node in the tree. Remember here each node represents a folder. Within each node there is a list of sub folder references and a list of file references. So if the current location is in the root and I wanted to access path "B\F\I\K\N\File.bin" then the search will need to first search the root node for a sub folder named B then move to B folder and search for F then move to F etc. until the N folder is reached and a search of that folders files will find the desired file. You can see a diagram I made of this particular search to get a better idea.
![](http://members.gamedev.net/noaktree/randompics/DEss_05_26_2005_A.png)
Each list needs to be sorted for a binary search to work so this is done every time a new item is added to either of the two lists. What this all works out to is a search time of O(xlogn) where n is the total number of items searched and x is the number of searches made which is also the number of nodes traversed in the operation. This seems like an acceptable complexity to me as long as x doesn't become too large and it shouldn't since x corresponds to the height of the tree. Like I said I've never done this before and there is probably better ways to do this. I'm not above just scrapping it all and starting over if someone can tell me why. [smile]