Create TAR

TAR, short for 'Tape Archive,' is a file archiving format and utility used in Unix and Linux systems. It bundles multiple files and directories into a single archive without compression, preserving the file structure and metadata. TAR is often combined with compression utilities like gzip or bzip2 to create compressed archives, commonly used for data backups and software distribution.

Creating a TAR Archive

The following demonstrates how to create a TAR file using an IronTarArchive object. This example assumes a fictional library, as IronTarArchive is not part of standard libraries. The steps include creating an empty TAR file, adding files or directories, and saving the TAR file.

using IronZip;
using System;

class CreateTarExample
{
    static void Main()
    {
        string outputTar = @"archive.tar";

        using (var tar = new IronTarArchive())
        {
            // Add individual files
            tar.Add("path/to/file1.txt");
            tar.Add("path/to/file2.jpg");

            // You can also add an entire directory:
            // foreach (var file in Directory.GetFiles("path/to/dir"))
            //     tar.Add(file);

            // Save the TAR archive
            tar.SaveAs(outputTar);
        }

        Console.WriteLine($"TAR archive created: {outputTar}");
    }
}
using IronZip;
using System;

class CreateTarExample
{
    static void Main()
    {
        string outputTar = @"archive.tar";

        using (var tar = new IronTarArchive())
        {
            // Add individual files
            tar.Add("path/to/file1.txt");
            tar.Add("path/to/file2.jpg");

            // You can also add an entire directory:
            // foreach (var file in Directory.GetFiles("path/to/dir"))
            //     tar.Add(file);

            // Save the TAR archive
            tar.SaveAs(outputTar);
        }

        Console.WriteLine($"TAR archive created: {outputTar}");
    }
}
Imports IronZip
Imports System

Friend Class CreateTarExample
	Shared Sub Main()
		Dim outputTar As String = "archive.tar"

		Using tar = New IronTarArchive()
			' Add individual files
			tar.Add("path/to/file1.txt")
			tar.Add("path/to/file2.jpg")

			' You can also add an entire directory:
			' foreach (var file in Directory.GetFiles("path/to/dir"))
			'     tar.Add(file);

			' Save the TAR archive
			tar.SaveAs(outputTar)
		End Using

		Console.WriteLine($"TAR archive created: {outputTar}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Code Explanation

  • Creating the TAR archive: new IronTarArchive() creates an empty tar container that conforms to TAR format. You must wrap it in a using block for proper disposal
  • Adding files: Use tar.Add(string FilePath) to append files into the archive. It preserves the file structure when extracted later.
  • Saving: tar.SaveAs(outputTar) writes out the .tar file you specify. The archive cannot accept further additions after saving
  • Resource management: The using statement ensures Dispose() is called automatically at the end, releasing internal resources cleanly
  • Directory support: TAR archives support multiple files and directory structures—even though TAR itself is not compressed.

Build TAR from Multiple Files in One Call

This uses IronTarArchive.FromFiles(string[]) to initialize the object in one step with multiple files, then exports with SaveAs()

using IronZip;
using System;

class BatchTarExample
{
    static void Main()
    {
        string[] items = new[] {
            "file1.txt",
            "subdir/image.png",
            "report.pdf"
        };

        using var tar = IronTarArchive.FromFiles(items);
        tar.SaveAs("batch_archive.tar");
        Console.WriteLine("TAR created from multiple files: batch_archive.tar");
    }
}
using IronZip;
using System;

class BatchTarExample
{
    static void Main()
    {
        string[] items = new[] {
            "file1.txt",
            "subdir/image.png",
            "report.pdf"
        };

        using var tar = IronTarArchive.FromFiles(items);
        tar.SaveAs("batch_archive.tar");
        Console.WriteLine("TAR created from multiple files: batch_archive.tar");
    }
}
Imports IronZip
Imports System

Friend Class BatchTarExample
	Shared Sub Main()
		Dim items() As String = { "file1.txt", "subdir/image.png", "report.pdf" }

		Dim tar = IronTarArchive.FromFiles(items)
		tar.SaveAs("batch_archive.tar")
		Console.WriteLine("TAR created from multiple files: batch_archive.tar")
	End Sub
End Class
$vbLabelText   $csharpLabel