ASP.NET Tutorial/File Directory/DeflateStream

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Decompressing a file using DeflateStream (C#)

   <source lang="csharp">

<%@ Page Language="C#" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.IO.rupression" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">

   protected void Page_Load(object sender, EventArgs e)
   {
       string filename = Server.MapPath("Data.zip");
       FileStream infile = File.OpenRead(filename);
       DeflateStream deflateStream = new DeflateStream(infile, CompressionMode.Decompress);
       byte[] buffer = new byte[infile.Length + 100];
       int offset = 0;
       int totalCount = 0;
       while (true)
       {
           int bytesRead = deflateStream.Read(buffer, offset, 100);
           if (bytesRead == 0)
           { break; }
           offset += bytesRead;
           totalCount += bytesRead;
       }
       FileStream outfile = File.Create(Path.ChangeExtension(filename, "txt"));
       outfile.Write(buffer, 0, buffer.Length);
       outfile.Close();
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server">
   </form>

</body> </html></source>


Decompressing a file using DeflateStream (VB)

   <source lang="csharp">

<%@ Page Language="VB" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.IO.rupression" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
       Dim filename As String = Server.MapPath("Data.zip")
       Dim infile As FileStream = File.OpenRead(filename)
       Dim deflateStream As New DeflateStream(infile, CompressionMode.Decompress)
       Dim buffer(infile.Length + 100) As Byte
       Dim offset As Integer = 0
       Dim totalCount As Integer = 0
       While True
           Dim bytesRead As Integer = deflateStream.Read(buffer, offset, 100)
           If bytesRead = 0 Then
               Exit While
           End If
           offset += bytesRead
           totalCount += bytesRead
       End While
       Dim outfile As FileStream = File.Create(Path.ChangeExtension(filename, "txt"))
       outfile.Write(buffer, 0, buffer.Length)
       outfile.Close()
   End Sub

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server">
   </form>

</body> </html></source>