문제

개발자로부터 "Visual Basic (6)이 UNC 경로를 다룰 수있는 유일한 방법은 드라이브에 매핑하는 것입니다. 이것이 정확합니까?그렇다면 근본적인 문제는 무엇이며 매핑된 드라이브 이외의 대안이 있습니까?

도움이 되었습니까?

해결책

다음은 작동하는 한 가지 방법입니다.

Sub Main()

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

End Sub

다른 팁

UNC를 사용하여 연결 문자열을 작성하는 레거시 VB6 앱이 있으므로 VB6이 이를 수행할 수 있다는 것을 알고 있습니다.권한 문제가 원인인 경우가 많습니다.

구식 파일 처리 방식도 작동합니다.

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

나는 이것이 사실이라고 생각하지 않습니다. Scripting.Runtime 도서관.

Oldschool VB에는 파일 처리를 위한 몇 가지 언어 구성이 있었습니다.이것들은 사악합니다.사용하지 마십시오.

VB6에서는 UNC 경로에 CHDrive를 사용할 수 없습니다.

App.Path는 UNC 경로를 반환하므로 이 경로에 ChDrive를 사용하려고 시도하면 ChDrive App.Path 오류가 발생합니다.

Microsoft에서는 "ChDrive가 UNC 경로를 처리할 수 없으므로 App.Path가 UNC 경로를 반환할 때 오류가 발생합니다"라고 말합니다.자세한 내용은 다음을 참조하세요. http://msdn.microsoft.com/en-us/library/aa263345(v=vs.60).aspx

어떤 종류의 파일 I/O를 수행하고 있나요?텍스트인 경우 FileSystemObject 사용을 살펴보세요.

아래 항목의 조합이 존재할 때 VB6 UNC 경로 문제가 관찰되었습니다.

  • unc는 숨겨진 '$' 공유를 가리킵니다.
  • 서버 이름이 8자를 초과하거나 표준 문자가 아닙니다.
  • 경로의 일부가 유난히 깁니다.
  • 서버는 성능 향상을 위해 8.3 지원을 해제했습니다.

일반적으로 75 경로 파일 액세스 오류 또는 54입니다.때때로 이는 앞서 언급한 UNC의 getshortfilename 및 getshortpathname과 같은 API와 관련될 수 있습니다.

그 외에는 그들은 훌륭하게 작동합니다 ...매핑된 경로에는 일반적으로 이러한 문제가 없지만 해당 드라이브 매핑은 자주 연결이 끊어지고 언제든지 변경되어 많은 지원 문제를 일으킬 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top