English 中文(简体)
需要通过网络传输超过3G的小文件
原标题:Need to transfert on network more than 3G of little file

我需要在网络上传输许多小文件。 我的文件总大小大约为 3G, 将来还会增长。 我知道, 我是否在网络上将文件( winrar 文件、 winzip 文件 或 7 个 zip 文件 ) 转换为类似文件, 网络上的性能会更好, 但我稍后会支付 Cpu 时间来压缩和解除压缩文件 。

是否有办法在C# # 传输我的目录 在只有一个文件 unchout 使用第三方,如 winrar, winzip, 7zip...

将我的文件夹、子文件夹和文件转换为最佳性能的最佳方式是什么?

现在我使用自定义的方法来做它导致 董事会。 Move 给了我一些问题

这是我的实际方法,我知道它可能不是 最高级的性能转换方法,有什么建议吗?

问题是:

< energ> 如何将我所有的目录和文件转换为更好的性能, 包括压缩和减压( 如果需要的话), 在 c# 中的网络共享中?

private void CopyDirectory(string source, string destination)
    {
      string[] files;


      if (!Directory.Exists(destination)) DirectoryHelper.CreateDirectoriesFromPath(destination);

      files = Directory.GetFileSystemEntries(source);

      foreach (string fileElement in files)
      {
        if (Directory.Exists(fileElement))
        {
          if (!ExcludedDirectoryName.Contains(Path.GetFileNameWithoutExtension(fileElement)))
          {
            CopyDirectory(fileElement, Path.Combine(destination, Path.GetFileName(fileElement)));
          }
        }
        else
        {
          try
          {
            // Valide si le fichier fait partie de la liste d exclusion
            if (!ExcludedDirectoryName.Contains(Path.GetFileNameWithoutExtension(fileElement)))
            {
              // Calcule le Path de destination
              string destinationFile = Path.Combine(destination, Path.GetFileName(fileElement));

              // Valide si le fichier existe
              if (FileHelper.Exist(destinationFile))
              {
                // Supprime le fichier
                File.Delete(destinationFile);
              }

              // Copie le nouveau fichier
              File.Copy(fileElement, destinationFile, true);
            }
          }
          catch (IOException ioEx)
          {


            // Log l exception
            ExceptionLogger.Publish(ioEx);
          }
        }
      }
    }
问题回答

类似 zip 的归档格式对于逐个文件的传输有很大的优势, 特别是如果您正在处理数万个小文件。 首先, zip 会被完全调试。 您不必担心边缘案件, 如空文件或目录 。 另一方面, 将几个大文件传送到网络比转移许多小文件要少得多的管理费 。

在您获取文件的文件系统和接收文件的文件系统中,每个文件的间接费用都很多。除了创建文件系统(当您可以设置一个合适的区块和组群大小时)之外,对于这个间接费用,你根本无能为力。

Using an archiving package like DotNetZip inside your program may help. You ll be able to write, and then read, zip files under control of your program. Check it out. http://www.codeproject.com/Articles/181291/DotNetZip. Sharpziplib is also a possibility.

但是,您可能想要查看使用像 rsync 这样的工具。 这是为您正在做的事情而设计的, 并且完全被调试 。 < a href="http://en.wikipedia. org/wiki/Rsync" rel="no follow" > http://en.wikipedia.org/wiki/Rsync





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签