从压缩文件(C#)获取所有信息

从压缩文件(C#)获取所有信息,c#,zip,rar,C#,Zip,Rar,我目前正在开发一个简单的应用程序,在其中浏览一个目录,然后将列出该目录中包含的所有文件。我使用Path.GetFilename和其他工具来获取每个文件的描述。现在我想知道,压缩文件呢?我想窥视一下压缩文件(zip、rar)的内部,并获取我能获得的所有文件信息。我该怎么做 以下是我目前的代码: if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { button1.Enabled = true;

我目前正在开发一个简单的应用程序,在其中浏览一个目录,然后将列出该目录中包含的所有文件。我使用Path.GetFilename和其他工具来获取每个文件的描述。现在我想知道,压缩文件呢?我想窥视一下压缩文件(zip、rar)的内部,并获取我能获得的所有文件信息。我该怎么做

以下是我目前的代码:

if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
        {
            button1.Enabled = true;
            this.dataGridView1.Rows.Clear();
            dPaths = "";
            string[] filePaths = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);
            for (int y = 0; y < filePaths.Length; y++)
            {
                FileInfo fInfo = new FileInfo(filePaths[y]);


                if (Path.GetExtension(filePaths[y]) != ".zip" && Path.GetExtension(filePaths[y]) != ".rar")
                {
                    this.dataGridView1.Rows.Add(
                        Path.GetFileName(filePaths[y]),
                        Path.GetExtension(filePaths[y]),
                        fInfo.Length,
                        fInfo.LastWriteTime,
                        Path.GetDirectoryName(filePaths[y]));

                    dPaths = dPaths
                        + Path.GetFileName(filePaths[y]) + "?"
                        + Path.GetExtension(filePaths[y]) + "?"
                        + fInfo.Length + "?"
                        + fInfo.LastWriteTime + "?"
                        + Path.GetDirectoryName(filePaths[y])
                        + ";";
                    // Legend:
                    // ? = explode for files, in order: Filename FileExtension Filesize FileDateModified Filepath
                    // ; = explode for every files
                }
                else //zip/rar detected, everything inside is not working though
                {
                    string[] compressedfile = Directory.GetFiles(filePaths[y], "*.*", SearchOption.AllDirectories);
                    for (int x = 0; x < compressedfile.Length; x++)
                    {
                        FileInfo fInfo2 = new FileInfo(compressedfile[x]);
                        this.dataGridView1.Rows.Add(
                        Path.GetFileName(compressedfile[x]),
                        Path.GetExtension(compressedfile[x]),
                        fInfo2.Length,
                        fInfo2.LastWriteTime,
                        Path.GetDirectoryName(compressedfile[x]));

                        dPaths = dPaths
                            + Path.GetFileName(compressedfile[x]) + "?"
                            + Path.GetExtension(compressedfile[x]) + "?"
                            + fInfo2.Length + "?"
                            + fInfo2.LastWriteTime + "?"
                            + Path.GetDirectoryName(compressedfile[x])
                            + ";";
                    }
                }
            }
        }
if(folderBrowserDialog1.ShowDialog()==DialogResult.OK)
{
按钮1.启用=真;
this.dataGridView1.Rows.Clear();
dPaths=“”;
string[]filepath=Directory.GetFiles(folderBrowserDialog1.SelectedPath,“***”,SearchOption.AllDirectory);
对于(int y=0;y
对于Zip文件,您可以直接使用.net。看看这篇优秀的文章: 对于Rar文件,您必须拥有第三方库。codeplex有一个你应该看看的


对于Zip文件,您可以直接使用.net。看看这篇优秀的文章: 对于Rar文件,您必须拥有第三方库。codeplex有一个你应该看看的