Visual Basic 6和UNC路径

5

我收到了一位开发人员的反馈,说"Visual Basic(6)处理UNC路径的唯一方法是将其映射到驱动器上"。 这是准确的吗?如果是这样,那么出现了什么问题,除了映射驱动器之外是否有其他选择?

7个回答

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

3
这里有一种行之有效的方法。
Sub Main()

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

End Sub

2

即使是旧式的文件处理方式也是有效的:

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

1
在VB6中,您无法使用CHDrive到UNC路径。
由于App.Path返回UNC路径,尝试将ChDrive用于此路径,ChDrive App.Path会导致错误。
正如微软所说的那样,“ChDrive无法处理UNC路径,因此当App.Path返回一个UNC路径时会引发错误”。有关更多信息,请查看http://msdn.microsoft.com/en-us/library/aa263345(v=vs.60).aspx

1

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

旧版VB有一些用于文件处理的语言结构。它们是邪恶的,请不要使用它们。


0
你们在做何种文件 I/O 操作?如果是文本文件,可以考虑使用 FileSystemObject。

0

我注意到在以下情况下存在VB6 UNC路径问题:

  • UNC指向隐藏的'$'共享
  • 服务器名称超过8个字符或具有非标准字符
  • 路径的一部分异常地长
  • 出于性能目的,服务器关闭了8.3支持

通常会出现75路径文件访问错误或54。有时,这可能与API(例如对上述UNC使用的getshortfilename和getshortpathname)有关。

除此之外,它们运行得非常好... 映射的路径通常不会出现这些问题,但是这些可恶的驱动器映射经常断开连接,而且随时可能更改,从而导致许多支持方面的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接