2009-08-14 10 views
1

Je développe une application dans le cacao.J'ai besoin de rechercher toutes les chansons dans le dossier selectedyed. J'ai utilisé "subpathsAtPath" pour obtenir tous les composants dans le dossier sélectionné. Cela fonctionne bien si l'utilisateur sélectionne un dossier particulier comme /User/Music.But si l'utilisateur sélectionne le répertoire racine comme "/" alors cette méthode se bloque .Il existe un moyen de résoudre ce problème. Merci d'avance .....Trouver tous les dossiers dans le répertoire racine

+0

est-ce que ça pend ou ça prend juste beaucoup de temps? – kent

Répondre

2

Comme kent dit, il est peu probable que cette méthode se bloque, il faut juste un long moment pour exécuter et bloquer l'exécution dans le thread jusqu'à ce qu'il revienne.

Envisagez d'utiliser enumeratorAtPath:. Il utilise un NSDirectoryEnumerator et vous donne un répertoire à la fois. Cela éliminera le besoin de créer un très grand tableau, ce qui est coûteux en mémoire. Il est également plus facile de décomposer votre travail en morceaux (NSOperations?) Afin de pouvoir le pousser vers un autre thread, ce qui serait probablement une bonne idée, compte tenu du temps que cela prendra pour terminer. NSDirectoryEnumerator vous donne également un certain contrôle sur l'énumération, c'est-à-dire que vous pouvez appeler -skipDescendents [sic] pour élaguer l'arborescence d'énumération.

Questions connexes