5

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

4

7 回答 7

6

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

于 2008-09-17T19:03:28.033 回答
3

这是一种有效的方法。

Sub Main()

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

End Sub
于 2008-09-17T19:05:57.450 回答
2

即使是老式的文件处理类型也可以:

Open "\\host\share\file.txt" For Input As #1
Dim sTmp
Line Input #1, sTmp
MsgBox sTmp
Close #1
于 2008-09-19T11:56:31.870 回答
1

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

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

于 2008-09-17T19:16:10.700 回答
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

于 2013-12-02T17:37:55.343 回答
0

你在做什么类型的文件 I/O?如果是文本,请考虑使用 FileSystemObject。

于 2008-09-19T02:41:44.443 回答
0

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

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

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

除此之外,它们工作得很好......映射路径通常不会出现这些问题,但那些该死的驱动器映射经常断开连接,并且可以随时更改,导致许多支持问题。

于 2008-10-01T03:14:29.753 回答