使用zip存档中的文件作为参数运行exe

时间:2018-06-27 12:24:08

标签: c# .net cmd zip

这似乎是一个非常具体的问题,我似乎找不到任何完全相关的解决方案(或者至少不知道要搜索什么)。

因此,我有一个程序可以打开嵌套的zip存档并查找特定文件。从这些文件类型之一中,我需要使用旧的C程序提取相关数据,我已将其编译为.exe并包含在项目中。但是,它是一个命令行程序,其中相对文件路径作为参数输入。在我的代码中,由于档案很大,因此整个文件都可以提取,因此文件以字节流的形式出现。

我似乎找不到任何线索来说明如何处理这些流,以便程序无需解压缩就可以提取它们。目前,我的代码如下:

foreach (ZipArchiveEntry entry in archive.Entries)
{
    if (entry.FullName.EndsWith(".fileending", StringComparison.OrdinalIgnoreCase))
    {
        filePresent = true;
        Process p = new Process();
        p.StartInfo.FileName = "fileExtract.exe";
        p.StartInfo.Arguments = ?
        p.Start();
    }
}

有什么办法可以做我正在尝试的事情,还是我需要寻找另一种方法?

1 个答案:

答案 0 :(得分:0)

由于旧的C程序需要从文件系统读取,因此您必须在某个地方创建文件(也许使用System.IO.Path.GetRandomFileName?)并将该路径提供给程序。

或者,重写旧的C程序以像使用stdin一样将其用作文件,尽管您可能会遇到编码问题,并且可能会出现矛盾的“我怎么告诉它文件名?”时刻:P