2008-09-17 13 views
5

Otrzymuję informację zwrotną od programisty, że "Jedynym sposobem, w jaki wizualny element podstawowy (6) może obsługiwać ścieżkę UNC, jest odwzorowanie go na dysk". Czy to jest dokładne? A jeśli tak, to jaki jest podstawowy problem i czy istnieją alternatywy inne niż zmapowany dysk?Ścieżki Visual Basic 6 i UNC

Odpowiedz

2

Oto jeden sposób, który działa.

Sub Main() 

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

End Sub 
6

Mamy starszą wersję aplikacji VB6, która używa UNC do tworzenia ciągów połączeń, więc wiem, że VB6 może to zrobić. Często napotkasz problemy z uprawnieniami, aby być winnym.

1

nie sądzę, to jest prawda, jeśli używasz biblioteki Scripting.Runtime.

Oldschool VB miał pewne konstrukcje językowe do obsługi plików. To są zło. Nie używaj ich.

0

Jakie operacje na plikach robisz? Jeśli jest to tekst, spójrz na użycie obiektu FileSystemObject.

2

Nawet stary typ szkoły obsługę plików działa:

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

Widziałem kwestie ścieżki VB6 UNC, gdy połączenie z poniższych elementów istnieje:

  • UNC punkty ukryty '$' udostępnij
  • nazwa serwera przekracza 8 znaków i lub ma niestandardowe znaki
  • część ścieżki jest wyjątkowo długa
  • serwer ma 8.3 wsparcie dla celów zamienił z wydajnością

Zazwyczaj błąd ścieżka dostępu do pliku 75 lub 54. Czasami może to być związane z API, takich jak getshortfilename i GetShortPathName na wspomnianej UNC-tych.

Poza tym, że działają świetnie ... Zmapowana ścieżka zwykle nie będzie miała takich problemów, ale te przeklęte mapowania dysków często się odłączają i mogą się zmienić w dowolnym momencie, powodując wiele problemów z obsługą.

1

W VB6 nie można używać narzędzia CHDrive do ścieżki UNC.

Ponieważ App.Path zwraca ścieżkę UNC, próbując użyć ChDrive do tej ścieżki, ChDrive App.Path spowoduje błąd.

Jak twierdzi Microsoft, "ChDrive nie może obsługiwać ścieżek UNC, a tym samym wywołuje błąd, gdy App.Path zwraca jeden". Aby uzyskać więcej informacji, spójrz na http://msdn.microsoft.com/en-us/library/aa263345(v=vs.60).aspx

Powiązane problemy