C# 使用System.IO.Compression C提取zip文件中嵌套的文件#
我有许多zip文件,其中包含嵌套在zip文件子目录中的.txt文件。我正在尝试提取.txt文件并将其输出到另一个目录,但是我遇到一个错误“找不到路径的一部分…”此错误发生在“entry.FullName”点 我相信我需要在解压过程的某个阶段删除文件路径,因为如果我使用zip文件,其中包含.txt文件,而没有任何子目录,我就可以运行代码。任何指点都将不胜感激 这是我的密码:C# 使用System.IO.Compression C提取zip文件中嵌套的文件#,c#,C#,我有许多zip文件,其中包含嵌套在zip文件子目录中的.txt文件。我正在尝试提取.txt文件并将其输出到另一个目录,但是我遇到一个错误“找不到路径的一部分…”此错误发生在“entry.FullName”点 我相信我需要在解压过程的某个阶段删除文件路径,因为如果我使用zip文件,其中包含.txt文件,而没有任何子目录,我就可以运行代码。任何指点都将不胜感激 这是我的密码: class Program { static void Main(string[] args) {
class Program
{
static void Main(string[] args)
{
DateTime dt = DateTime.Now;
foreach (var zp in Directory.GetFiles(@"D:\\My Documents\\DMU\\Frontrunner2015\\ZipIn\\", "*.zip"))
{
string zipPath = zp;
string extractPath = @"D:\\My Documents\\DMU\\Frontrunner2015\\ZipOut\\";
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
if (entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase))
{
entry.ExtractToFile(Path.Combine(extractPath, entry.FullName));
}
foreach (var file in Directory.GetFiles(extractPath))
{.....
如果您将路径留在错误消息中,以便人们可以看到未找到的路径,则会有所帮助。我猜,当您将extractPath和FullName组合在一起时,最终会得到一个不存在的文件夹名——正如您所提到的,zip文件中的文件有子目录
我想你真的想在
路径中使用Name
属性。合并调用。你完全正确!这非常有效,也非常合理:)非常感谢。