11
votes

Impossible de lister le répertoire incluant l'espace à l'aide de Perl dans la plate-forme Windows

Pour répertorier les pistes de Windows, j'ai écrit ci-dessous la fonction Perl (exécutée dans l'environnement d'exécution de la fraise). XXX

mais il ne peut pas analyser le répertoire, par exemple: < / p>

Quand j'ai publié le code suivant: listpath ("E: / test / test1 / test11 / test111 / test1111 / test11111 - copie");

La fonction renvoyée un tableau comprenant deux éléments:

1: E: / Test / Test1 / Test11 / Test111 / Test1111 / Test11111 2: -

Je me demande si Glob pourrait analyser au-dessus des annuaires de l'espace. Merci beaucoup.


0 commentaires

3 Réponses :


20
votes

try bsd_glob à la place: xxx


1 commentaires

Seulement pour enregistrer: du DOC à jour sur Fichier :: Glob , il est découragé d'utiliser l'indicateur d'exportation : glob , préférez : bsd_glob .



2
votes

Même si le sujet a été répondu il y a longtemps, je rencontrais récemment le même problème et une recherche rapide me donne une autre solution, de perlmonks (dernière réponse): xxx

mais préfère bsd_glob , il prend également en charge deux autres fonctionnalités soignées, telles que comme [] pour la classe de caractères.


0 commentaires

1
votes

La question concerne la plate-forme Windows, où la solution de Bentoy13 ne fonctionne pas car la barre oblique intégrale serait confondue pour un séparateur de chemin de chemin.

Voici une option si vous ne voulez pas aller avec BSD_GLOB: enveloppez l'offensive. partie du chemin dans les devis doubles. Cela peut être un nom de répertoire ( chemin \\ "à mon" \\ fichier.txt.txt ) ou plusieurs noms de répertoires ( "chemin \\ à mon" fichier.txt >). Slash au lieu de la barre oblique inverse fonctionne habituellement aussi. Bien sûr, ils ne ont pas d'inclure un espace, cela fonctionne donc toujours: xxx

N'oubliez pas que c'est une solution Windows. Si cela fonctionne sous Linux dépend du contexte.


0 commentaires