以下是该方案:
所以我的问题是:在Windows资源管理器中打开映射文件夹能以某种方式加速我的程序传输文件吗?这似乎是正在发生的事情,但在我看来,它应该没有任何区别。
答案 0 :(得分:4)
如果同样的问题和技术人员“内部”可以指向网络(操作系统级别)中文件系统的缓存。该缓存只在每隔这么多秒(在我的情况下为15秒)刷新一次。也不'关闭',也不'重置'可以强制服务器/ PC与文件刷新更快(甚至文件列表框中的.refresh也没有。)
所以,当我通过'Dir'询问网络是否存在文件时,我会在15秒后得到答案。
但是,当我假设文件存在时,我做了一个文件复制,我等待错误,惊喜......我立即得到文件或者我立刻得到错误。
顺便说一下,没有必要进行文件复制(例如,如果它是一个大文件)。重命名(并将其重命名为原始文件名)对我也一样。我们花了很多时间来解决这个问题,但我们发现我们需要深入了解操作系统(并且每个版本都有所不同),因此,我们选择使用“硬编码”文件,也就是说,我们有服务器在本地(即在服务器上)生成带有他看到的文件的文本文件。该文本文件具有站点知道的硬编码名称...然后站点可以立即访问文件,而无需等待通过网络刷新文件系统。
我知道,这有点奇怪,但它确实对我们有用。
答案 1 :(得分:0)
欢迎你。也许下一次关于我们的解决方案的澄清可能会有所帮助。
当文件存在时,它立即通过网络可见。当在服务器上创建一个新的(创建不是由读取客户端完成)时,缓存的目录列表需要15-30秒才能刷新并且对于客户端(在VB中)可见。
远程连接程序通常会绕过此目录列表缓存。我们在VB中找不到一个好的,经济实惠的方法,但是我们可以使用这种方法。
现在我们使用一堆已知的文件名,服务器上已经存在的文件(对客户端来说是可见的)。在具有硬编码名称的文本文件中,客户端可以找到哪些文件可供他阅读。
奇怪的是......阅读意图文件(在文本文件中找到)正在读取内容,几乎没有任何延迟(在我们的测试中不到1秒)。延迟似乎只是出现在文件名中,而不是出现在内容中。