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

Posted

技术标签:

【中文标题】将文件从 Zip 保存到特定文件夹【英文标题】:Save file from Zip into a specific folder 【发布时间】:2014-07-18 15:53:19 【问题描述】:

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

例如,我要下载的 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");


    


我想将提取的内容保存在不同的文件夹中。

【问题讨论】:

发布您目前拥有的内容,并尝试将其保存到单独的文件夹中。 【参考方案1】:

你可以试试,

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;
   

【讨论】:

Path.Combine 无法识别 Path.GetExtension 无法识别 Path.GetFileName 也无法识别 它确实有效!谢谢。我所要做的就是进行一些修改。感谢您的想法。 @user3530469 很高兴它有帮助。

以上是关于将文件从 Zip 保存到特定文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何从 zip 中提取 csv 文件并在 python 中将其保存到磁盘? [复制]

如何将图像从相机保存到 iPhone 画廊中的特定文件夹?

无法将 SQL 数据另存为 Excel 或 Zip 文件

从 URL 下载返回的 Zip 文件

每次将文件下载到特定文件夹时触发 python 脚本

从 URL 检索 zip,但使用 Content-Disposition 文件名标识符保存到本地文件