最初の
結論... 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 からログオフすることです。もう 1 つの理由は、WriteFileText がエラーをスローしていて、それを別の方法で作成しようとすると、まだエラーが発生することです。たとえば、エクスプローラーで共有にテキスト ファイルを作成すると、問題なく動作します。次に、作成したファイルの名前を私のフラグ名、ネットワーク エラーに変更してみてください。フラグ ファイルとして使用する名前以外の任意のファイル名に名前を変更できます。