我想遍历压缩过的归档文件的内容,并在内容可读的地方显示它们。对于基于文本的文件,我可以做到这一点,但似乎无法解决如何从图像之类的东西中提取二进制数据。这就是我所拥有的:
var zipArchive = new System.IO.Compression.ZipArchive(stream);
foreach (var entry in zipArchive.Entries)
{
using (var entryStream = entry.Open())
{
if (IsFileBinary(entry.Name))
{
我注意到非常长的时间来提取一个基于ARM的设备上的zip文件。提取20 60压缩文件需要超过60秒!我甚至在950 to上看到140秒,这应该是一个更强大的手臂模型之一。
这是我正在使用的代码:
var startExtractTime = DateTime.Now;
ZipArchive za = new ZipArchive(archiveMemoryStream, ZipArchiveMode.Read);
za.ExtractToDirectory(path);
var stopExtractTime = DateTime.Now;
var durationInSeconds = st
我正在使用c#程序下载压缩文件,并收到以下错误
at System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory()
at System.IO.Compression.ZipArchive.Init(Stream stream, ZipArchiveMode mode,
Boolean leaveOpen)
at System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode,
Boolean leaveOpen, Encoding ent
到目前为止,我的代码如下: async Task<bool> HttpDownloadAndUnzip(string requestUri, string directoryToUnzip)
{
using var response = await new HttpClient().GetAsync(requestUri, HttpCompletionOption.ResponseHeadersRead);
if (!response.IsSuccessStatusCode) return false;
using var streamToReadFrom = a
我试图用ZipArchive方法getFromName从zip文件中读取文件内容。我的文件名中有一个双点(..)。这是我的密码:
$zip = new ZipArchive();
$zip->open('book.zip');
$content = $zip->getFromName('book/html/../README.md');
var_dump($content);
我的zip文件的结构如下:
Archive: book.zip
Length Date Time Name
--------- ------
$zipfile = 'zipfilename';
$extractpath= 'C:\extract';
$zip = new ZipArchive();
if ($zip->open($zipfile) !== TRUE) {
die ("Could not open archive");
}
// extract contents to destination directory
$zip->extractTo($extractpath);
如何避免覆盖已经存在的文件夹?