Pregunta

Recibo comentarios de un desarrollador de que "la única forma en que Visual Basic (6) puede lidiar con una ruta UNC es asignarlo a una unidad". ¿Es esto preciso?Y, si es así, ¿cuál es el problema subyacente? ¿Existen otras alternativas además de una unidad asignada?

¿Fue útil?

Solución

Aquí hay una forma que funciona.

Sub Main()

    Dim fs As New FileSystemObject ' Add Reference to Microsoft Scripting Runtime
    MsgBox fs.FileExists("\\server\folder\file.ext")

End Sub

Otros consejos

Tenemos una aplicación VB6 heredada que usa UNC para crear una cadena de conexión, así que sé que VB6 puede hacerlo.A menudo, encontrará que los problemas de permisos son los culpables.

Incluso el tipo de manejo de archivos de la vieja escuela funciona:

Open "\\host\share\file.txt" For Input As #1
Dim sTmp
Line Input #1, sTmp
MsgBox sTmp
Close #1

No creo que esto sea cierto, si estás usando el Scripting.Runtime biblioteca.

Oldschool VB tenía algunas construcciones de lenguaje para el manejo de archivos.Estos son malvados.No los uses.

En VB6 no puedes usar CHDrive a una ruta UNC.

Dado que App.Path devuelve una ruta UNC, al intentar utilizar ChDrive para esta ruta, ChDrive App.Path provocará un error.

Como dice Microsoft, "ChDrive no puede manejar rutas UNC y, por lo tanto, genera un error cuando App.Path devuelve una".Para más información, mira http://msdn.microsoft.com/en-us/library/aa263345(v=vs.60).aspx

¿Qué tipo de E/S de archivos estás haciendo?Si es texto, considere usar un FileSystemObject.

He observado problemas con la ruta UNC de VB6 cuando existe una combinación de los siguientes elementos:

  • el unc apunta a una acción oculta '$'
  • el nombre del servidor supera los 8 caracteres o tiene caracteres no estándar
  • una parte del camino es excepcionalmente larga
  • el servidor tiene soporte 8.3 desactivado por motivos de rendimiento

Por lo general, un error de acceso al archivo de ruta 75 o 54.En ocasiones, esto puede estar relacionado con API como getshortfilename y getshortpathname en las UNC antes mencionadas.

Aparte de eso, funcionan muy bien...Una ruta asignada generalmente no tendrá estos problemas, pero esas malditas asignaciones de unidades se desconectan con frecuencia y pueden cambiar en cualquier momento, causando muchos dolores de cabeza al soporte.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top