Yeah...that's a lot of code to look through. Did you try stepping through the code to see what you're problem is?
Well, I can tell you without doing that, but that's what you should do next time. It looks like you want to show the difference in time between when the file was created/modified and the time the person is looking at it. So, that's fine, but you never actually get the time from the File if that's what you're wanting.
Here's the basic sequence that you've written:
DateTime startTime = DateTime.Now;
DateTime stopTime = DateTime.Now;
TimeSpan _Difference = (_StopTime - _StartTime);
AddRow(fi.Name, di.FullName, slen, _Difference);
All that will give you is the time if took to run the code between the startTime and StopTime, which based on your code will only take a few milliseconds, therefore 0 hours, 0 minutes, 0 seconds or "0.0.00".
Also, you should realize that if you have a block like
If (something == true)
{
}
else
{
}
variables declared within the If section are not available in the else section.
In your else, you have
_StopTime = DateTime.Now;
_Difference = (_StopTime - _StartTime);
that will work because of implicit conversion, but good coding practice is to declare those variables in the proper scope.
[Update]
Sandeep answered your question about milliseconds. But, seriously, you're running only about a dozen operations and you want to see how long that takes? What's the point?