Would you consider adding a method to the DirectoryContentsList that returns the index of a given file? Either
/** Returns true if the list contains the specified file, and also returns its index if it was found. */ bool contains (const File&, int& index) const;
/** Returns the index of the specified file, or -1 if that file is not in the list. */ int indexOf (const File& fileToFind) const;
would do. This would help avoid redundant O(N) searches through large list.