Tengo algunos problemas para escribir en una unidad de red mapeada (P :) en Windows 7 desde mi programa Delphi. Cuando intento, por ejemplo, ForceDirectories('P:\test\folder')
, aparece un error (ruta no encontrada).¿Por qué mi programa no reconoce rutas mapeadas UNC?
He intentado escribir en la ruta UNC en el código (ForceDirectories('\\computername\share\test\folder')
) y eso funciona. Sin embargo, ExpandUNCFileName('P:\')
no parece funcionar; devuelve 'P: \'. En Windows XP, ExpandUNCFileName('P:\')
devuelve la ruta UNC.
¿Cómo obtengo la ruta de acceso UNC en Delphi en Windows 7, o bien escribo en una unidad de red mapeada?
En una investigación posterior, es como si me falta algún tipo de inicialización en Windows. Tengo otra aplicación (app2) que usa un TcxShellComboBox
(un componente de DevExpress). Después de haber navegado hasta P: en ese cuadro combinado, en la aplicación 2, las llamadas al ExpandUNCFileName
funcionan correctamente en la primera aplicación. Lo mismo con FileExists
en archivos bajo P :, devuelve False antes de navegar a P: en app2, devuelve true después y hasta que la computadora se reinicie.
¿Es esto por casualidad un servicio? El comportamiento que describes no tiene nada que ver con Delphi y ocurre porque la asignación de unidades no está configurada para el proceso. –
Verifique que tiene la letra de unidad asignada al recurso compartido.Pude reproducir su problema solo si la letra de la unidad no estaba asignada (Delphi 7, 2007 XE). – crefird
No es un servicio, es una aplicación de formularios VCL. – MGH