【发布时间】:2014-10-29 12:40:02
【问题描述】:
首先是底线...
如果您在包含 IO.File.Exist(FileTest) 的 Novell 客户端 Win7 上使用循环来寻找 FileTest 消失,这意味着该继续前进,请从另一个客户端删除 FileTest ,然后你尝试使用 FileTest 代表的名称,你会得到一个网络错误。我认为它与Novell Client Win7有关的原因是如果共享是Windows共享,我看不出问题。此外,当我们的客户是 XP SP3(不确定 Novell 版本)时,我们没有看到这一点。如评论中所述,我在 SAMBA 共享上尝试过此操作,但没有发现问题。
接下来是细节......
重现它很简单。
Module Module1
Sub Main()
Dim FileTest As String = "\\corp01\vol1\bbs\test.flg" 'corp01 is a Novell share'
IO.File.WriteAllText(FileTest, "")
Do While IO.File.Exists(FileTest)
System.Threading.Thread.Sleep(100)
Loop
End Sub
End Module
然后从另一个客户端删除 test.flg,程序按预期结束。尝试再次运行它,当它尝试在 WriteAllText 中创建它时,您将收到网络错误。谁或如何创建文件似乎并不重要。我试图删除 WriteAllText 并从另一个客户端创建它,然后启动程序,从另一个客户端删除它,但在尝试引用名称时仍然出现网络错误。
我猜....
我认为该名称以某种方式被缓存。修复它的唯一方法是从 Windows 注销。另一个原因,如果 WriteFileText 抛出错误并且我尝试了另一种创建它的方式,仍然有错误。例如,在资源管理器中,我在共享上创建了一个文本文件,工作正常。然后尝试将创建的文件重命名为我的标志名称,网络错误。除了我用作标志文件的名称之外,我可以将其重命名为任何其他文件名。
【问题讨论】:
-
我看不出您的问题与标题中的
IO.File.Exists(“”)有何关联。 -
一开始我并没有真正看到这个问题:D
-
至于标题,我愿意接受建议。问题应该是:-),关于如何做到这一点的任何想法?它是 Windows 中的错误吗,Novell?
-
我刚刚在 smaba 共享上尝试过,没有收到错误。所以跟Win7 Novell客户端有关。
-
Novell 客户端在 15 年前是一个非常糟糕的软件。每个新版本都更糟。 Novell 不再从事他们曾经拥有的网络业务的一个重要原因。今天仍然使用它是非常不可取的。