C# 如何检测文件是否在网络上?

C# 如何检测文件是否在网络上?,c#,networking,filesystems,sql-server-ce,C#,Networking,Filesystems,Sql Server Ce,背景: 我们在Windows应用程序中使用SQLCE数据库。有些用户会选择将此数据库存储在网络上,以便在用户之间轻松共享(而不是同时共享)。当数据库在网络驱动器上打开时,我们希望将数据库复制到本地文件夹以获得更好的性能,并在应用程序关闭时返回。原因是,在某些网络上,性能根本无法接受(是的,用户不应该将数据库放在那里,但他们确实放在那里) 我们当前对网络文件的检测只是使用DriveInfo和DriveType==DriveType.network,但这也会捕获映射到驱动器的本地文件夹和其他类似场景

背景: 我们在Windows应用程序中使用SQLCE数据库。有些用户会选择将此数据库存储在网络上,以便在用户之间轻松共享(而不是同时共享)。当数据库在网络驱动器上打开时,我们希望将数据库复制到本地文件夹以获得更好的性能,并在应用程序关闭时返回。原因是,在某些网络上,性能根本无法接受(是的,用户不应该将数据库放在那里,但他们确实放在那里)

我们当前对网络文件的检测只是使用DriveInfo和DriveType==DriveType.network,但这也会捕获映射到驱动器的本地文件夹和其他类似场景(从用户那里报告)。有没有更好的方法来真正检测文件是否在网络上,或者更好的方法来检测任何类型的慢速连接(后者可能需要对大文件进行某种程度的测量读取,而我们对此并不感兴趣,因此我们将满足于第一部分)? 我不认为.Net直接支持这一点,但是P/Invoke也同样好


提前感谢。

请参见

请注意,网络不一定等于慢速连接,就像本地存储等于快速连接一样(例如,低级闪存存储可能比网络链接慢一个数量级)。您可能需要查看此[链接][1]。[1] :好的,网络连接可以更快,但通常情况并非如此,我们的用户报告的也不是这样。如果我们能满足大多数用户的需求,我们会很高兴。如果我们能找到更好的方法来确定文件何时驻留在“真实”网络上,我们相信这是可能的。我看不出建议的链接与我们的问题有什么关系,因此请澄清。请注意,网络不一定等于慢速连接,超过本地存储等于快速连接(例如,低级闪存存储可能比网络链接慢一个数量级)。您可能希望查看此[链接][1]。[1] :好的,网络连接可以更快,但通常情况并非如此,我们的用户报告的也不是这样。如果我们能够满足大多数用户的需求,我们会很高兴。如果我们能够找到更好的方法来确定文件何时驻留在“真实”网络上,我们相信这是可能的。我看不出建议的链接与我们的问题有什么关系,因此请澄清。测试了它,它返回的值与DriveInfo相同,因此,使用它没有好处,它返回的值与DriveInfo相同,因此使用它没有好处