\' Display the names in C:\\ that represent directories.
MyPath = \"c:\\\" \' Set the path.
MyName = Dir(MyPath, vbDirectory) \' Retrieve the first entry.
Do Whi
Dir is function which has a edge effect.
the first call to Dir: MyName = Dir(MyPath, vbDirectory) initializes the Dir internals and returns the first directory entry.
Subsequent calls to Dir use the same context, yielding MyPath directory contents one by one.
It's not reentrant (which is also why you can't nest/recurse multiple loops using Dir), not very elegant, but that's how it works.
According to the Dir() MSDN, it
Returns a string representing the name of a file, directory, or folder that matches a specified pattern or file attribute, or the volume label of a drive.