这似乎是一个非常具体的问题,我似乎找不到任何完全相关的解决方案(或者至少不知道要搜索什么)。
因此,我有一个程序可以打开嵌套的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();
}
}
有什么办法可以做我正在尝试的事情,还是我需要寻找另一种方法?
答案 0 :(得分:0)
由于旧的C程序需要从文件系统读取,因此您必须在某个地方创建文件(也许使用System.IO.Path.GetRandomFileName?)并将该路径提供给程序。
或者,重写旧的C程序以像使用stdin一样将其用作文件,尽管您可能会遇到编码问题,并且可能会出现矛盾的“我怎么告诉它文件名?”时刻:P