当网络连接丢失时,c#File.Exists会得到错误的结果

当网络连接丢失时,c#File.Exists会得到错误的结果,c#,networking,connection,fileinfo,C#,Networking,Connection,Fileinfo,我必须检查映射网络驱动器上的文件 f、 e.p:\myFolder\myFile.dat FileInfo-fi=新的FileInfo(myfile); 如果(fi.存在) { //如果网络中断,“存在”将不工作。 //不管什么原因 //所以现在试试看…Catch,FileInfo构造函数实际上可以省略! 尝试 { FileVersionInfo fvi=FileVersionInfo.GetVersionInfo(myfile); } 捕获(FileNotFoundException ex)

我必须检查映射网络驱动器上的文件

f、 e.p:\myFolder\myFile.dat

FileInfo-fi=新的FileInfo(myfile);
如果(fi.存在)
{
//如果网络中断,“存在”将不工作。
//不管什么原因
//所以现在试试看…Catch,FileInfo构造函数实际上可以省略!
尝试
{
FileVersionInfo fvi=FileVersionInfo.GetVersionInfo(myfile);
}
捕获(FileNotFoundException ex)
{
此版本=新版本(“1.0.0”);
}
}
其他的
{
此版本=新版本(“1.0.0”);
}
一切都很好,直到我拔下网络电缆。
FileInfo
仍然认为该文件存在

为什么?

@索曼
File.Exists(myfile)
也不起作用。
它有着与FileInfo相同的问题,文档中说明了您所描述的行为:

首次检索属性时,FileInfo调用Refresh方法并缓存有关文件的信息。在后续调用中,必须调用Refresh以获取信息的最新副本


您可能需要调用吗?可能是
FileInfo
对象仍然有其值,并且没有刷新吗?如果调用
File.Exists(“path”)或调用
Fi.Refresh()
,就像matthew指出的那样。
fi.Refresh(); worked !