2013-12-11 4 views
1

의 모든 정보를 현재 간단한 응용 프로그램에서 작업하여 디렉토리를 찾으면 해당 디렉토리에 포함 된 모든 파일이 나열됩니다. 나는 Path.GetFilename과 다른 것들을 사용하여 모든 파일에 대한 설명을 얻습니다. 그리고 지금 wodering, 압축 된 파일은 어떻게됩니까? 압축 된 파일 (zip, rar)을 들여다보고 내가 얻을 수있는 모든 파일 정보를 얻고 싶습니다. 나는 그것을 어떻게 할 것인가?압축 파일 (C#)

여기 내 코드는 지금까지 : 당신이 직접 .NET 사용할 수있는 Zip 파일의 경우

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]) 
          + ";"; 
        } 
       } 
      } 
     } 

답변