I have a folder that can (hundreds currently) but upwards of 10's of thousands of files. I have a program that gets all file names, and sorts them based upon set criteria and displays them in a treeview. My issue is right now a few hundred files moves fairly quickly when getting files name (path.getfiles), sorting, and returning sorted list for further search and display. My concern is when the number of files starts to increase, alot of these functions will take exponentially longer to perform. Especially my organizing function.

Because my files are part numbers <PartNum><Rev><SubRev><ManuNum>.<extension> I first sort out all different Part numbers first making the list manageable (maximum of a few thousand). Then as you choose a part number to work with, it retrieves all files associated with that part number (maximum of a few hundred).

My concern is everytime I need to look for a file in anyone of those steps, I have to import all file names, search and return correct file path, and Im sure this will become slow as the number of files increase. I dont mind having it do it once then update the list as needed. So I was thinking import and sort all file names at load, and check every so often for and files that might have been modified recently and just update it's entry in the sorted list. But this means my program has to stop, and check all files for changed "modified" time, which too will be slow-ish.

Is there a fast way to see if a list update is required besides poking every file in the folder every few seconds? I was going to just check for a single file update when it was selected in the treeview, but that doesnt help if a file is added to the folder. So I almost need a folder hash, to see if anything changed, but then the hash will change as the "file last accessed" value changes. And there doesnt appear to be a folder "contents last modified" feature.

How would the "pros" do this?