将文件从Zip保存到特定文件夹

本文关键字:文件夹 保存 文件 Zip | 更新日期: 2023-09-27 18:05:46

我正在做这个项目,我从网上下载了压缩文件,然后我将以程序方式解压缩它,然后将解压缩文件保存到特定的文件夹。

例如,我要下载的zip文件包含。png,。jpg,。docx,。ppt文件。

我要做的就是把。PNG文件保存到PNG文件夹,把。JPG文件保存到JPG文件夹,等等

我已经完成了下载部分和解压缩。

现在的问题是我如何保存解压缩文件到不同的文件夹根据他们的文件类型?

有谁能帮帮我吗?

到目前为止,这是我所做的代码。

 using System;
 using Microsoft.Office.Interop.Excel;
 using Excel = Microsoft.Office.Interop.Excel;
 using System.Reflection;
 using System.Net;
 using System.ComponentModel;
 namespace UnzipFile
 {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : System.Windows.Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

这里是解压文件。

    public static void UnZip(string zipFile, string folderPath)
    {
        if (!File.Exists(zipFile))
            throw new FileNotFoundException();
        if (!Directory.Exists(folderPath))
            Directory.CreateDirectory(folderPath);
        Shell32.Shell objShell = new Shell32.Shell();
        Shell32.Folder destinationFolder = objShell.NameSpace(folderPath);
        Shell32.Folder sourceFile = objShell.NameSpace(zipFile);
        foreach (var file in sourceFile.Items())
        {
            destinationFolder.CopyHere(file, 4 | 16);
        }
    }

这里是解压缩文件,但保存在一个文件夹中。zip文件中的所有文件。

    private void btnUnzip_Click(object sender, RoutedEventArgs e)
    {
        UnZip(@"E:'Libraries'Pictures'EWB FileDownloader.zip", @"E:'Libraries'Pictures'sample");

    }
}

}

我想把我提取的文件保存到另一个文件夹

将文件从Zip保存到特定文件夹

你可以试试,

string[] files = Directory.GetFiles("Unzip folder path");
foreach (var file in files)
{
   string fileExtension = Path.GetExtension(file);
   switch (fileExtension)
   {
       case ".jpg": File.Move(file, Path.Combine(@"Destination Folder'JPG", Path.GetFileName(file)));
       break;
       case ".png": File.Move(file, Path.Combine(@"Destination Folder'PNG", Path.GetFileName(file)));
       break;
       case ".docx": File.Move(file, Path.Combine(@"Destination Folder'DOC", Path.GetFileName(file)));
       break;
       case ".ppt": File.Move(file, Path.Combine(@"Destination Folder'PPT", Path.GetFileName(file)));
       break;
       default:
       break;
   }
}