Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打包大量大文件以供下载的最佳方法?_C#_Asp.net_Zip - Fatal编程技术网

C# 打包大量大文件以供下载的最佳方法?

C# 打包大量大文件以供下载的最佳方法?,c#,asp.net,zip,C#,Asp.net,Zip,我有一个ASP.NET网站,它存储大量文件,如视频。我想要一个简单的方法,允许用户下载一个包中的所有文件。我在考虑动态创建ZIP文件 我所看到的所有示例都涉及在下载之前创建文件,但可能会下载TB的信息,因此用户需要等待很长时间。显然,ZIP文件在文件末尾存储了关于ZIP文件中内容的所有信息 我的想法是动态地创建下载的文件。这样我就可以允许用户点击下载。下载将开始,不需要服务器上的任何空间进行预打包,因为它将通过未压缩的顺序复制内容。文件的最后一部分将包含已下载内容的信息 有人有过这样的经历吗?有

我有一个ASP.NET网站,它存储大量文件,如视频。我想要一个简单的方法,允许用户下载一个包中的所有文件。我在考虑动态创建ZIP文件

我所看到的所有示例都涉及在下载之前创建文件,但可能会下载TB的信息,因此用户需要等待很长时间。显然,ZIP文件在文件末尾存储了关于ZIP文件中内容的所有信息

我的想法是动态地创建下载的文件。这样我就可以允许用户点击下载。下载将开始,不需要服务器上的任何空间进行预打包,因为它将通过未压缩的顺序复制内容。文件的最后一部分将包含已下载内容的信息

有人有过这样的经历吗?有人知道更好的方法吗?目前我看不到任何预先制作的实用程序,但我相信它会起作用。如果它不存在,那么我想我必须阅读Zip文件格式规范并编写自己的代码。。。这将需要比我打算花费更多的时间


谢谢您的链接,但是GZip需要首先将所有文件打包到一个位置。如果我有TB的信息,那么我不能保证RAM或硬盘上有足够的内存来实现这一点。它也会很慢。。。或者我错过了解释?为什么不首先将它们存储在压缩的服务器上?视频已经相当压缩(取决于使用的压缩),因此压缩视频可能不会带来任何(或很大)尺寸优势,除非它是原始视频。“动态”压缩的问题是,通常必须通过遍历整个文件来构建压缩。你可以将它压缩成块,但同样,如果是视频/音频,它可能会被压缩到它将要得到的程度。也许我应该澄清一下。我对压缩不感兴趣。我感兴趣的是将所有文件打包成一个zip文件,以便可以轻松下载