C# 有没有办法改进文件夹结构到网络位置的复制

C# 有没有办法改进文件夹结构到网络位置的复制,c#,windows,C#,Windows,如果您要复制许多包含文件的文件夹,通常最好只创建一个包含文件夹和文件的ZIP/RAR,将其复制到网络路径并解压缩。这通常比复制粘贴快得多 有没有一种方法可以通过编程实现这一点,并将其嵌入到windows中,以便它可以尝试检测哪种方法更快,并使用该方法(常规方法或“动态压缩”)来提高速度您是否尝试过使用机器人复制?它内置于Windows上,功能强大,多线程,具有许多选项,包括镜像和故障时重试。我将其用于所有复制到网络位置。试试看。除非另一端有东西可以执行解压缩,或者压缩状态可以接受,否则“动态压缩

如果您要复制许多包含文件的文件夹,通常最好只创建一个包含文件夹和文件的ZIP/RAR,将其复制到网络路径并解压缩。这通常比复制粘贴快得多


有没有一种方法可以通过编程实现这一点,并将其嵌入到windows中,以便它可以尝试检测哪种方法更快,并使用该方法(常规方法或“动态压缩”)来提高速度

您是否尝试过使用
机器人复制
?它内置于Windows上,功能强大,多线程,具有许多选项,包括镜像和故障时重试。我将其用于所有复制到网络位置。试试看。

除非另一端有东西可以执行解压缩,或者压缩状态可以接受,否则“动态压缩”是一种浪费。也就是说:

是的,你可以编写一个应用程序来压缩/rars文件

是的,您可以让该应用程序将zip/rar复制到网络目录

是的,你可以让另一端的应用程序等待文件并在本地解压

你能让它检测“哪条路更快”吗??虽然有可能,但它不太可能对大文件以外的任何东西都有好处。。。在这一点上,您应该始终压缩/rar并转移…这将使整个练习变得毫无意义。当然,您可能应该评估使用您的应用程序传输的数据,看看它是否是压缩的候选数据。例如,视频可能不是

更重要的是,每一端都必须有一个相互了解的应用程序(或者至少是所涉及的协议)。一个应用程序(我们称之为客户端)将压缩文件并将其发布到另一个应用程序(我们称之为服务器)。当服务器收到该文件时,它将解压缩该文件并将其存储在文件系统中

更新

我想到了压缩的另一种情况:一次传输很多小文件。普通的网络文件复制例程对于单个大文件比大量小文件要快得多。所以,如果他们同时选择了几百个文件,你最好总是压缩。顺便说一句,这并没有改变另一端的东西能够解压的要求。

robocopy是否支持“动态压缩”以减少传输时间?否
robocopy
不支持“动态压缩”。回到您最初的问题:要想知道哪种方式更快,您必须考虑压缩时间(或多或少取决于CPU)和网络带宽。我通常在网络上传输非常“沉重”的目录,压缩对我来说从来都不值得。同样,这取决于压缩的效果,而压缩的效果取决于处理的数据类型。我不认为会有一个微不足道的方法来解决你的问题。