2008-09-17 61 views
5

Recibo comentarios de un desarrollador que "La única forma en que Visual Basic (6) puede manejar una ruta UNC es asignarla a una unidad". Es esto exacto? Y, en caso afirmativo, ¿cuál es el problema subyacente y existen alternativas distintas a una unidad mapeada?Visual Basic 6 y rutas UNC

Respuesta

2

Aquí hay una manera que funciona.

Sub Main() 

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

End Sub 
6

Tenemos una aplicación VB6 heredada que usa UNC para construir una cadena de conexión, así que sé que VB6 puede hacerlo. A menudo, encontrarás problemas de permisos para ser el culpable.

1

No creo que esto es cierto, si está utilizando la biblioteca Scripting.Runtime.

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

0

¿Qué tipo de archivo de E/S estás haciendo? Si se trata de texto, investigue usando un FileSystemObject.

2

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

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

he observado con los parches de VB6 UNC cuando una combinación de los siguientes elementos existe:

  • los puntos de acceso UNC a un oculto '$' compartir
  • el nombre del servidor supera 8 caracteres o tiene caracteres no estándar
  • una parte de la ruta es excepcionalmente larga
  • El servidor tiene soporte convertido en un 8,3 por motivos de rendimiento

Por lo general, un error de acceso a archivos de 75 o ruta 54. A veces esto puede estar relacionado con la API como getshortfilename y GetShortPathName en lo anterior UNC.

Aparte de eso, funcionan muy bien ... Una ruta mapeada generalmente no tendrá estos problemas, pero esas asignaciones de unidad zurdas se desconectan a menudo y pueden cambiar en cualquier momento, lo que causa muchos problemas de soporte.

1

En VB6 no puede usar CHDrive en una ruta UNC.

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

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

Cuestiones relacionadas