Su un file system senza distinzione tra maiuscole e minuscole, come NTFS o HFS +, dato il nome di un file, qual è il modo più efficiente per determinare la versione del nome file conservata in maiuscolo?Come trovare il nome di un file conservato in maiuscolo in Perl?
Considerare il HFS + (Mac OS X):
> perl -E 'say "yes" if -e "/TMP"'
yes
Si dice che esiste, naturalmente, ma non ho idea di come il suo caso è conservato. Qual è il modo più efficace per determinare il caso reale?
Quello che ho provato finora:
glob
con classi di personaggi: Non funziona su Windows:> perl -E "say for glob "C:\\Perl" C:\Perl > perl -E "say for glob "C:\\[Pp][Ee][Rr][Ll]"
nota la mancanza di uscita da quella dell'ultimo comando. :-(
opendir
/readdir
: Works, ma sembra piuttosto inefficiente per leggere un'intera directory:> perl -E "opendir my $dh, 'C:\\'; say for grep { lc $_ eq 'perl' } readdir $dh; close $dh" Perl
E 'pazzesco pensare che non ci dovrebbero essere alcune istruzioni del sistema operativo di base o qualcosa per ottenere queste informazioni in modo più efficiente?
Questa domanda potrebbe aiutare per HFS +: http://stackoverflow.com/a/13544447/702638 –