Mapped Network Drive,File.Exists奇怪的行为

时间:2014-01-06 13:48:18

标签: c# .net

我正面临着一些奇怪的问题。

  • 步骤

    1. 将一个网络驱动器映射为Y:\,它具有文件Y:\ Abc.txt
    2. .Net应用程序将数据库中的文件路径存储为“Y:\ Abc.txt”
    3. 断开驱动器。 [注意:我的应用程序目前仍在运行]
    4. 应用程序从DB读取路径,并使用.net的File.Exists方法获取“Y:\ Abc.txt”
    5. 即使驱动器已断开连接,File.Exists仍会返回true,而File.ReadAllLines则会使文件中的所有数据都正常工作。

  
    

注:

  
     

如果我在步骤3之后关闭应用程序,那么它会给出正确的错误,   像文件不存在。

这里有没有人遇到过这个问题。

1 个答案:

答案 0 :(得分:2)

当您取消映射驱动器时,不要为预先存在的进程取消映射:您的进程在映射时启动,因此它会一直看到它。

(这仅适用于映射驱动器;如果它是例如USB驱动器并且您实际将其删除,那么您的程序当然将无法再访问它。)

简而言之,这就是事情的运作方式!