It's obvious that you're using a bunch of memory and you're doing a lot of processing.
With that line, you are saving a file info object for every file in the path specified, and you are adding it to a listbox. That could consume a lot of memory. Also, you may want to wait until you are done scanning to add the items to the listbox all at once (I think there is a special way to do that so adding items one by one doesn't slow things down so much).
sReturn &= ControlChars.CrLf & RunScan(Path)
sReturn &= ControlChars.CrLf & File
With these lines, you are concatenating a string to an already large string. This creates an entirely new string and both consume memory until the old string gets garbage collected. You do this EACH TIME you perform the string concatenation. Look into StringBuilder to optimize this and prevent the unnecessary string concatenations. You're program will perform better by a factor of N (where N is the number of files) by doing this.
Also, you said your UI locks up. This is because you are running all this code on the UI thread. If you run it on a new thread and only send updates to the UI thread, your UI will not lock up.