Extraño comportamiento: directorios en Windows XP
Publicado por Diego Romero (996 intervenciones) el 19/07/2007 04:18:24
Quiero compartir con ustedes esto que acabo de descubrir.
Hace tiempo (estoy hablando de años, más de 10...) tengo hecho una aplicación que tiene un instalador en Turbo Pascal. Al ser una aplicación DOS no requiere una gran máquina para funcionar, ni siquiera Windows. Todo ha ido bien hasta que me han contactado de un cliente que se vió en la necesidad de reinstalar la aplicación pero esta vez sobre Windows XP, diciéndome que la aplicación no se instala como debería.
Extrañado yo por esto, siendo que durante años tanto la aplicación como su instalador ha funcionado correctamente, sospecho del sistema operativo cayendo en la cuenta que nunca lo había probado.
Después de pasarme un buen tiempo debugeando sobre Windows XP llego a la conclusión de que el procedimiento ChDir(); (cambiar directorio) de Turbo Pascal no funciona bien en XP. Asombrado por esto realizo unas cuantas pruebas y me entero que el cambio del directorio actual en Windows XP no funciona como lo hace MS-DOS o los otros Windows. Esto es lo que encontré
Parámetro MS-DOS Win98 WinXP
c:\temp\temp Válido Válido No válido
\temp\temp\ Válido Válido No válido
\temp\temp Válido Válido Válido
\ Válido Válido No válido
Deduzco que para usar ChDir(); sobre Windows XP no se puede poner la letra de unidad ni dejar la \ al final del path! de hacerlo, siempre resulta en un "path not found" aunque el path sí existe.
Para corroborar esto escribí un programa de prueba en otro lenguaje para DOS, COBOL con idéntico resultado.
Sin embargo haciendo un archivo de procesamiento por lotes (.BAT) sí funciona la segunda forma de la tabla más no la primera ni la última (no muestra error pero no cambia el directorio tampoco).
Hace tiempo (estoy hablando de años, más de 10...) tengo hecho una aplicación que tiene un instalador en Turbo Pascal. Al ser una aplicación DOS no requiere una gran máquina para funcionar, ni siquiera Windows. Todo ha ido bien hasta que me han contactado de un cliente que se vió en la necesidad de reinstalar la aplicación pero esta vez sobre Windows XP, diciéndome que la aplicación no se instala como debería.
Extrañado yo por esto, siendo que durante años tanto la aplicación como su instalador ha funcionado correctamente, sospecho del sistema operativo cayendo en la cuenta que nunca lo había probado.
Después de pasarme un buen tiempo debugeando sobre Windows XP llego a la conclusión de que el procedimiento ChDir(); (cambiar directorio) de Turbo Pascal no funciona bien en XP. Asombrado por esto realizo unas cuantas pruebas y me entero que el cambio del directorio actual en Windows XP no funciona como lo hace MS-DOS o los otros Windows. Esto es lo que encontré
Parámetro MS-DOS Win98 WinXP
c:\temp\temp Válido Válido No válido
\temp\temp\ Válido Válido No válido
\temp\temp Válido Válido Válido
\ Válido Válido No válido
Deduzco que para usar ChDir(); sobre Windows XP no se puede poner la letra de unidad ni dejar la \ al final del path! de hacerlo, siempre resulta en un "path not found" aunque el path sí existe.
Para corroborar esto escribí un programa de prueba en otro lenguaje para DOS, COBOL con idéntico resultado.
Sin embargo haciendo un archivo de procesamiento por lotes (.BAT) sí funciona la segunda forma de la tabla más no la primera ni la última (no muestra error pero no cambia el directorio tampoco).
Valora esta pregunta


0