Displaying an accurate progress is not completely practical because you will first have to traverse the entire folder tree in order to find all the files and folders to be copied. You can't know how long that will take so an accurate indication of progress is impossible. What you might do is set the Style of the ProgessBar to Marquee while you get the list of files and folders. Once that's done you will be able to count the files to be copied so an accurate progress of the actual copy will be possible.

To get a list of all files and folders you can use the Directory.GetDirectories and .GetFiles methods in a recursive method. There are lots of examples around of recursive file searches so a bit of web searching should yield all the information you need.