Using C#, I am finding the total size of a directory. The logic is this way : Get the files inside the folder. Sum up the total size. Find if there are sub directories. Then do a recursive search.
I tried one another way to do this too : Using FSO (obj.GetFolder(path).Size). There’s not much of difference in time in both these approaches.
Now the problem is, I have tens of thousands of files in a particular folder and its taking like atleast 2 minute to find the folder size. Also, if I run the program again, it happens very quickly (5 secs). I think the windows is caching the file sizes.
Is there any way I can bring down the time taken when I run the program first time??
If fiddled with it a while, trying to Parallelize it, and surprisingly – it speeded up here on my machine (up to 3 times on a quadcore), don’t know if it is valid in all cases, but give it a try…
.NET4.0 Code (or use 3.5 with TaskParallelLibrary)