In other words, you do a shallow enumeration of a given directory, then repeat the shallow enumeration on whatever directories you find. This is actually the same thing you'd do with getattrlistbulk.
Right. For some reason I thought it would be less efficient.
Have or haven't? How are you copying files? FYI, if server side copying is an issue, this post has a code snippet for that.
Have. To copy files, I'm just calling copyfile. I didn't know about server-side copying, but that may explain why every now and then a user complains that my app is slow, though they never got back to me explaining their setup or comparing the speed of my app to the that of the Finder.
What's the actual failure? The copy itself failing, display issue(s), etc?
I'm not sure, they simply replied "I just tried [in the Finder] and it did indeed loop!" I assume the "Preparing X files" display when starting a copy operation just kept counting up
On the technical, the resource usage difference can easily be quite large, since "wide" hierarchies are much more common than "deep" hierarchies
That makes sense. My app does a deep scan to determine what files to copy, then copies them, and finally stores the directory hierarchy so it can be compared with the next scan. My users also assume that the app kind of runs in the background and doesn't use too much resources, so I think I'll stick to recursion for now.