【发布时间】:2012-01-03 20:02:02
【问题描述】:
背景: 我们在 Windows 应用程序中使用 SQLCE 数据库。一些用户会选择将此数据库存储在网络上,以便用户之间轻松共享(不是同时)。当数据库在网络驱动器上打开时,我们希望将数据库复制到本地文件夹以获得更好的性能,并在应用程序关闭时返回。这样做的原因是,在某些网络上,性能简直不能接受(是的,用户不应该将数据库放在那里,但他们确实这样做了)。
我们当前对网络文件的检测只是使用 DriveInfo 和 DriveType == DriveType.Network,但这也可以捕获映射到驱动器的本地文件夹和其他类似情况(来自用户的报告)。有没有更好的方法来真正检测文件是否在网络上,或者甚至更好地检测任何类型的慢速连接(后者可能需要对大文件进行某种测量读取,我们对此并不真正感兴趣,所以我们会满足于第一部分)? 我不认为 .Net 直接支持这一点,但 P/Invoke 一样好。
提前致谢。
【问题讨论】:
-
请注意,网络不一定等于慢速连接,正如本地存储等于快速连接一样(例如,低级闪存可能比网络链接慢一个数量级)。
-
您可能想查看此 [链接][1]。 [1]:stackoverflow.com/questions/458363/…
-
好的,网络连接可以更快,但通常情况并非如此,也不是我们的用户报告的内容。如果我们能够满足大多数用户的需求,我们会很高兴,如果我们能找到更好的方法来确定文件何时驻留在“真实”网络上,我们认为这是可能的。
-
我看不出建议的链接与我们的问题有什么关系,所以请澄清一下。
标签: c# networking filesystems sql-server-ce