Ceci est une question assez ancienne mais je suis tombé dessus parce que j'avais exactement le même problème; Je voulais utiliser les méthodes NSFileManager over Carbon et implémenter une copie récursive manuelle, car il y a trop de cas à gérer, et NSFileManager fait un bon travail de résolution des erreurs dans les opérations de fichiers (par exemple, passer d'un volume à un autre, etc.). Vous pouvez arrêter NSFileManager, essentiellement, en provoquant une erreur. Ce n'est pas joli, mais ça fonctionne correctement. Par exemple. J'ai utilisé NSFileManager pour déplacer un répertoire d'un endroit à un autre, et j'ai donné à l'utilisateur la possibilité d'annuler l'opération; Pour contourner le 'non-annulabilité' de NSFileManager, j'ai juste renommé le répertoire de destination pendant que son contenu est copié; NSFileManager déclenche une erreur et l'opération de copie s'arrête proprement. Cela ne fonctionnera que pour les déplacements entre volumes ou copies, (lorsqu'une copie ou une copie-suppression est effectuée), car pour les déplacements dans un volume, OSX effectue simplement un changement de nom, ce qui est pratiquement instantané.
Je me demande pourquoi Apple n'a pas implémenté cela. – Pripyat