Visual Basic 6和UNC路径

时间:2008-09-17 19:00:40

标签: vb6 unc

我收到开发人员的反馈意见“视觉基础(6)处理UNC路径的唯一方法是将其映射到驱动器。”这准确吗?而且,如果是这样,那么什么是根本问题,除了映射驱动器之外还有其他选择吗?

7 个答案:

答案 0 :(得分:6)

我们有一个使用UNC构建连接字符串的传统VB6应用程序,所以我知道VB6可以做到这一点。通常,您会发现权限问题是罪魁祸首。

答案 1 :(得分:2)

这是一种有效的方法。

Sub Main()

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

End Sub

答案 2 :(得分:2)

即使是旧式的文件处理也能正常工作:

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

答案 3 :(得分:1)

如果您使用的是Scripting.Runtime库,我认为这不是真的。

Oldschool VB有一些用于文件处理的语言结构。这些都是邪恶的。不要使用它们。

答案 4 :(得分:1)

在VB6中,您无法将CHDrive用于UNC路径。

由于App.Path返回UNC路径,尝试将ChDrive用于此路径,ChDrive App.Path将导致错误。

正如微软所说“ChDrive无法处理UNC路径,因此当App.Path返回一个时会引发错误”。有关详细信息,请查看http://msdn.microsoft.com/en-us/library/aa263345(v=vs.60).aspx

答案 5 :(得分:0)

你在做什么样的文件I / O?如果是文本,请查看使用FileSystemObject。

答案 6 :(得分:0)

当存在以下项目的组合时,我观察到了VB6 UNC路径问题:

  • unc指向隐藏的'$'分享
  • 服务器名称超过8个字符,或者具有非标准字符
  • 路径的一部分特别长
  • 服务器为性能目的而启用了8.3支持

通常是75路径文件访问错误或54.有时这可能与API有关,例如上述UNC的getshortfilename和getshortpathname。

除此之外,它们工作得很好......映射路径通常不会出现这些问题,但是那些已经过时的驱动器映射会经常断开连接,并且可能随时发生变化,从而导致许多支持问题。