C# 读取zip文件中的文件名,而不在powershell中解压缩

C# 读取zip文件中的文件名,而不在powershell中解压缩,c#,.net,powershell,C#,.net,Powershell,我有一个.zip文件文件.zip。这个zip文件中有很多文件,只有一个扩展名为.txt的文本文件。我想读取此文本文件的名称。有没有办法在Powershell或C#中读取名称而不提取zip文件?如果您有.Net 4.5,您可以运行类似的程序 [Reflection.Assembly]::LoadWithPartialName( "System.IO.Compression.FileSystem" ); $zipContens = [System.IO.Compression.ZipFile]::O

我有一个
.zip
文件
文件.zip
。这个zip文件中有很多文件,只有一个扩展名为
.txt
的文本文件。我想读取此文本文件的名称。有没有办法在Powershell或C#中读取名称而不提取zip文件?

如果您有.Net 4.5,您可以运行类似的程序

[Reflection.Assembly]::LoadWithPartialName( "System.IO.Compression.FileSystem" );
$zipContens = [System.IO.Compression.ZipFile]::OpenRead("C:\path\file.zip");  
$zipContens.Entries | % {
   if ($_.Name -match "TheFileYouAreLookingFor.txt"){
       # found, your code block
   }
}
这个问题将有助于:

您可以使用该对象从zip文件中枚举文件名:

$zip = 'C:\path\to\file.zip'

$app = New-Object -COM 'Shell.Application'
$app.NameSpace($zip).Items() | ? { $_.Name -like '*.txt' } | select -Expand Name

你有没有为此编写过代码?你可以在这个类似的问题上找到答案:是的,我可以通过提取zip来读取文件名。但是我想在不提取Habjan的情况下读取文件名。我想在不使用任何第三方库的情况下读取文件名。有什么办法吗?