El fichero en cuestión lo genera la utilidad robocopy. En el mismo se muestran ficheros y directorios que se van a actualizar. El problema aparece con los que en su nombre contienen tildes o caracteres que podemos llamar "no estándares". Si abro el fichero con un editor los caracteres con tildes no se muestran correctamente. Una línea de dicho fichero es:
D:\CPRL SEVILLA\Direccion\DIRECCION\Direcci¢n2010\
(os lo muestro exactamente igual que lo hago yo)
Con mi programa lo leo como si fuera utf8 y si lo muestro por pantalla le indico que lo haga también en esa codificación y lo hace correctamente (la línea anterior aparece en pantalla como Dirección2010). Pero, aunque el print() lo muestra bien si pregunto si existe ese fichero realmente no lo encuentra y si creo un directorio lo hace con el carácter que veo en el fichero con el editor.
El programa es el siguiente, para que se vea más claro:
Using perl Syntax Highlighting
- use utf8;
- binmode STDOUT, ":utf8";
- open (ENTRADA,"<entrada2.txt");
- binmode ENTRADA, 'utf8';
- @fichero = <ENTRADA>;
- foreach $dato (@fichero)
- {
- chop $dato;
- if (-e $dato)
- {
- print "Existe: $dato\n\n";
- }
- else
- {
- print " NO EXISTE: $dato\n\n";
- mkdir $dato;
- }
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
A ver si alguien me puede ayudar. Gracias.