UPDATE: Thanks to the comment from Bart, I found a problem with my approach. I used the pInvoke.net example in my code and they defined the nFileSizeHigh and nFileSizeLow as integers. This is why there was so much overflow. They should have been defined as unsigned int to allow for a greater range. I am going to leave my solution untouched below because it worked and it is a good learning experience. However if you ever need to use WIN32_FIND_DATA make sure you are using unsigned integers and the the MSDN solution should work fine. Thanks again to Bart.
————————————————————————————————
ORIGINAL POST BEGINS:

I recently had the job of writing an application using the .NET Framework for work that would walk through the folders at a given location and return the total of all the file sizes so we can track changes in certain directories.  I quickly found out that the .NET Framework does not allow for folder paths that are beyond 260 characters and you get an exception if you try.  Well that is a pain.

Read the rest of this entry »