2017-06-27 1 views
1

Je dois glob un répertoire énorme pour certains fichiers. Cela prendra plusieurs secondes. Maintenant, en utilisant go, je voudrais bien sûr faire la globbing de manière à ce que je récupère le résultat dans un canal plutôt que d'avoir à attendre que le glob entier réussisse. Malheureusement, je ne pouvais pas encore trouver quelque chose comme ça lors de la recherche. Est-il disponible en go?Globbing de fichier via goroutine

+0

Il n'y a rien de intégré, mais bien sûr vous pouvez écrire votre propre fonction en utilisant 'os.File.Readdirnames'. –

Répondre

0

Il existe la fonction intégrée filepath.Glob que vous pouvez utiliser pour rechercher globalement des fichiers dans un répertoire, mais bien sûr, elle effectue une synchronisation synchrone. Si vous voulez des résultats sur un canal, vous devrez faire quelque chose vous-même, mais il ne devrait pas être difficile de combiner filepath.Match qui gère glob, et filepath.Walk qui marche une structure de répertoire (c'est en quelque sorte filepath.Glob fait, though it uses recursion rather than Walk).