Visual Basic 6和UNC路径
时间:2020-03-05 18:59:41 来源:igfitidea点击:
我收到开发人员的反馈," Visual Basic(6)处理UNC路径的唯一方法是将其映射到驱动器。"这是正确的吗?而且,如果是这样,潜在的问题是什么?除了映射驱动器之外,还有其他选择吗?
解决方案
回答
我们有一个旧版VB6应用程序,它使用UNC来构建连接字符串,因此我知道VB6可以做到。通常,我们会发现权限问题是元凶。
回答
这是一种有效的方法。
Sub Main() Dim fs As New FileSystemObject ' Add Reference to Microsoft Scripting Runtime MsgBox fs.FileExists("\server\folder\file.ext") End Sub
回答
如果我们使用的是Scripting.Runtime
库,我认为这不是真的。
Oldschool VB具有一些用于文件处理的语言构造。这些是邪恶的。不要使用它们。
回答
我们正在执行哪种文件I / O?如果是文本,请使用FileSystemObject。
回答
即使是老式的文件处理方式也可以:
Open "\host\share\file.txt" For Input As #1 Dim sTmp Line Input #1, sTmp MsgBox sTmp Close #1
回答
当存在以下各项的组合时,我已经观察到VB6 UNC路径问题:
- unc指向隐藏的" $"份额
- 服务器名称超过8个字符,或者具有非标准字符
- 路径的一部分非常长
- 服务器已出于性能目的关闭了8.3支持
通常是75路径文件访问错误或者54. 有时可能与API有关,例如上述UNC上的getshortfilename和getshortpathname。
除此之外,它们还可以很好地工作...映射路径通常不会出现这些问题,但是那些过时的驱动器映射经常断开连接,并且随时可能更改,从而导致许多支持难题。