Code:
FindFirst(path + '*.*', faDirectory, SearchRec)
Windows is patient and kind to fools and maybe allows this travesty for historical reasons.
Linux is not.

In Windows, *.* means any file. In Linux, any file that has a period in its name.
Your code won't see any of the folders it tries to list.
Use '*', Luke.