Xceed .NET Libraries Documentation
Welcome to Xceed Data Manipulation Compoents for .NET and .NET Standard / Task-Based Help / Tar and GZip capabilities / Creating and Writing / Copying items to Tar/Bzip2 archive

In This Topic
    Copying items to Tar/Bzip2 archive
    In This Topic

    Xceed Zip for .NET contains FileSystem (derived from AbstractFile/AbstractFolder) clases for Tar. However, it only contains FileSystem classes for GZip and not BZip2.

    However, our streaming compression component, Xceed.Compression.Formats, contains a BZip2 compressed stream class. Using that, Tar/BZip2 (.Tbz) archives can be created.

    static void Example()
    {
      Xceed.Tar.Licenser.LicenseKey = "<your ZIN license key>";
      Xceed.Compression.Formats.Licenser.LicenseKey = "<your ZIN license key>";
    
      AbstractFile tbzFile;
    
      // Select the Tar-BZip2 file
      tbzFile = new DiskFile( "Example.tbz" );
    
      // If the Tar-BZip2 file already exists
      if( tbzFile.Exists )
        // Delete it. We want to create a new archive, not update an existing one
        tbzFile.Delete();
    
      // Create and open the Tar-BZip2 file
      using( Stream stream = tbzFile.CreateWrite() )
      {
        // Wrap the file stream with a BZip2 stream
        using( BZip2CompressedStream bzip2Stream = new BZip2CompressedStream( stream ) )
        {
          // Wrap the BZip2 stream with a StreamFile object so we can feed it to FileSystem calls
          StreamFile streamFile = new StreamFile( bzip2Stream );
    
          // Create a logical Tar archive around the BZip2 stream file
          TarArchive tar = new TarArchive( streamFile );
    
          // Select a source folder
          AbstractFolder sourceFolder = new DiskFolder( @"D:\Data" );
    
          using( AutoBatchUpdate batch = new AutoBatchUpdate( tar ) )
          {
            // Add the files from the source folder to the archive
            sourceFolder.CopyFilesTo( tar, true, true );
          }
        }
      }
    }
    Private Shared Sub Example()
      Xceed.Tar.Licenser.LicenseKey = "<your ZIN license key>"
      Xceed.Compression.Formats.Licenser.LicenseKey = "<your ZIN license key>"
    
      Dim tbzFile As AbstractFile
    
      ' Select the Tar-BZip2 file
      tbzFile = New DiskFile("Example.tbz")
    
      ' If the Tar-BZip2 file already exists
      If tbzFile.Exists Then
        ' Delete it. We want to create a new archive, not update an existing one
        tbzFile.Delete()
      End If
    
      ' Create and open the Tar-BZip2 file
      Using stream As Stream = tbzFile.CreateWrite()
        ' Wrap the file stream with a BZip2 stream
        Using bzip2Stream As New BZip2CompressedStream(stream)
          ' Wrap the BZip2 stream with a StreamFile object so we can feed it to FileSystem calls
          Dim streamFile As New StreamFile(bzip2Stream)
    
          ' Create a logical Tar archive around the BZip2 stream file
          Dim tar As New TarArchive(streamFile)
    
          ' Select a source folder
          Dim sourceFolder As AbstractFolder = New DiskFolder("D:\Data")
    
          Using batch As New AutoBatchUpdate(tar)
            ' Add the files from the source folder to the archive
            sourceFolder.CopyFilesTo(tar, True, True)
          End Using
        End Using
      End Using
    End Sub
    See Also