65.9K
CodeProject 正在变化。 阅读更多。
Home

列出和处理存档中的文件

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.86/5 (6投票s)

2007 年 6 月 14 日

CPOL
viewsIcon

33088

downloadIcon

574

本文介绍了如何使用 CAKE3,它是一个用于许多归档 DLL 的封装组件。

Screenshot - Cakcmd.gif

引言

本文介绍了如何使用 CAKE3,它是一个用于许多归档 DLL 的封装组件,包括 SharpZipLib(Zip)、Sqx Archiver(Sqx)、XacRett(范围广泛)、Unlha(Lha,Lzh)、Unarj(Arj)、7-zip32(7z)、Unace(ace)、Unrar(rar) 归档文件。

背景

C# 中有一些 zip/unzip 解决方案,但我需要更多类型的归档文件支持。我相信在不久的将来,大多数其他归档类型都不会有原生支持,所以唯一的办法是调用 Win32 DLL...

Using the Code

所有归档操作都可以通过主单元执行:Cakdir3,如果您想访问新的归档文件,则应创建一个新的 Cakdir3 实例。

您应该先下载归档 DLL,详细路径可以在 Dlls.txt 中找到。

您可以在 这里 查看帮助文件。

列出文件

Cakdir3 c3 = new Cakdir3(archiveName);
c3.OnMessage += new MessageEventHandler(OnMessage);
c3.List(mask);
                                    
foreach (ContentType ct in c3.Archive_Contents)
  Console.WriteLine(ct.fileName);

//Utils.GetSmallFileIcon - Return small file icon of a file (exist or not).
//Utils.GetLargeFileIcon - Return large file icon of a file (exist or not).

测试文件

Cakdir3 c3 = new Cakdir3(archiveName);
c3.OnMessage += new MessageEventHandler(OnMessage);
c3.Test();

压缩文件

Cakdir3 c3 = new Cakdir3(archiveName);
c3.OnMessage += new MessageEventHandler(OnMessage);
c3.AddOptions.addFile = new string[] { "C:\file2Add" }
c3.Add(); //Use c3.AddToFolder if you want to add to specific folder in archive.

解压缩文件

Cakdir3 c3 = new Cakdir3(archiveName);
c3.OnMessage += new MessageEventHandler(OnMessage);
c3.ExtractOptions.extractFolder = "c:\path2extract";
c3.ExtractOptions.extractItem = new string[] { "*" };
c3.Extract();

删除文件

Cakdir3 c3 = new Cakdir3(archiveName);
c3.OnMessage += new MessageEventHandler(OnMessage);
c3.DeleteOptions.deleteFile = new string[] { "/file2del" };
c3.Delete();  

关注点

我为 我的下一个免费归档程序 编写了这个组件。 我不知道还能用它做什么。 如果您发现任何用途,请给我发邮件。

历史

  • 2007-06-14 - 初始发布
  • 2007-06-23 - 库更新 (更新列表)
© . All rights reserved.