我们有大量的日志(117个日志,总共约有17gb的数据)。 它是纯文本,因此我知道它会很好地压缩。 我不是在寻找出色的压缩或速度(但这将是一个不错的选择)。 我目前要做的是获取要读取的日志文件列表(文件名中带有日期戳,因此我首先对其进行过滤)。 得到列表后,我然后使用File.ReadAllLines()读取每个文件,但我们也会对此进行过滤...

private void GetBulkUpdateItems(List<string> allLines, Regex updatedRowsRegEx)
{
    foreach (var file in this)
        allLines.AddRange(File.ReadAllLines(file).Where(x => updatedRowsRegEx.IsMatch(x)));

    allLines.Sort();
}

从网络读取5个文件大约需要22秒。 我想做的是将文件列表压缩到一个zip文件中。 将zip文件复制到本地,然后将其解压缩并执行其余操作。 问题是我不知道如何开始。 由于我使用的是.net 4.5,因此我首先尝试了System.IO.Compression.ZipFile但是它需要一个Directory,而我并不需要全部117个文件。 我看到有人使用听起来不错的网络流和7zip,而且我相当确定我需要从中获取日志的服务器上已经安装了7zip(可能并不重要,因为我们使用UNC路径)。 所以我被卡住了。 有什么建议么?

#1楼 票数:0

ZipArchiveZipFile的基础类,并允许更精细的操作。

从文章中添加硬编码文本的示例:

using (FileStream zipToOpen = new FileStream(
           @"c:\users\exampleuser\release.zip", FileMode.Open))
{
    using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
    {
        ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt");
        using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
        {
                writer.WriteLine("Information about this package.");
                writer.WriteLine("========================");
        }
    }
}

正如Praveen Paulose所建议的那样,您可以使用ZipFileExtensions.CreateEntryFromFile从文件创建条目以添加到存档。

  ask by Robert Snyder translate from so

未解决问题?本站智能推荐:

1回复

SharpZipLib库压缩具有高级压缩和高效时间的子文件夹的文件夹

我使用了许多现有的代码,我试图以多种方式压缩文件夹,但我仍然遇到时间和文件夹大小问题(仍然大致相同的大小)。 此代码来自库的源代码,但仍未提供所需结果
1回复

小文件的更好选择,发送还是压缩并发送?

如果我的文件比较小(<1 Mb),那么程序的更好选择是,首先将文件压缩到磁盘上,然后再发送.zip文件或仅发送。 我不确定网络和磁盘的速度,文件大小会更改为,但这不是很大的更改。 我认为对于较大的文件来说,压缩当然更好,但是当文件很少Kb时,我压缩它会得到一些东西,还是我丢失了,因为我
3回复

如何在C#中进行动态图像压缩?

我有一个 Web 应用程序,它允许用户上传各种格式(PNG、JPEG、GIF)的图像。 不幸的是,我的用户不一定是技术人员,最终上传的图像质量(和大小)超出了要求。 在提供这些图像时,有没有办法压缩这些图像? 压缩我的意思是有损压缩,降低质量而不一定是大小。 如果不同格式的压缩方式不同,我是否也应该
2回复

SharpCompress和LZMA27z存档-特定文件的提取速度非常慢。为什么?备择方案?

我有一个带有LZMA2压缩的7zip存档(压缩级别:超级)。 该档案包含1,749个文件,总共最初的大小为661mb。 压缩文件大小为39mb。 现在,我正在尝试使用C#从此存档中提取一个小的(~200kb'ish)单个文件。 我从IArchive获得相应的IArchiveEntry
1回复

如何从R中的压缩.csv文件读取多个特定列

我需要一种快速方法来将压缩为.tar.gz的.csv文件中的多个特定列读取到R中的变量中。 我的方法: 好像他不懂管道命令,因为它zcat filename.tar.gz | cut -d ; -f 1,2,3 zcat filename.tar.gz | cut -d ; -f 1,2
1回复

在保存为核心数据之前先压缩图像数据

我正在创建一个学生索引应用程序,您可以在其中保存学生的姓名,图片和角色。 一切都很好,但是当我在应用程序测试期间创建了一定数量的学生(带有图片)时,该应用程序运行非常慢。 请找到随附的相应方法。 有什么办法可以压缩图像数据的大小?
1回复

Python-如何一次性有效地写入/读取压缩档案中的JSON文件?

我正在使用 Python 3.8 并希望将数据字典保存到一个 JSON 文件中,该文件一次性压缩在存档中,理想情况下仅使用 Python 标准库。 例如,这意味着我的数据保存在文件data.json ,该文件包含在压缩数据compressed_data.zip文件中。 现在,这是我得到的: 这不会产
1回复

保存到磁盘之前先压缩和解压缩文件

在我的应用程序中,我有一个Web服务,该服务从FormData(客户端)获取一个文件,并且我想在保存到磁盘之前压缩该文件(不使用额外的文件夹)。 我从这里读了很多答案,但是我很困惑,我将在后面的代码中使用哪种方法来实现更好的压缩。我也想在访问时解压缩该文件。 目前在后面的代码中,我正在使