---
product: Chilkat
product_version: 11.7.0
language: vbnet
language_label: VB.NET
class: UnixCompress
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/vbnetUnixCompressRef.html
---
# Chilkat UnixCompress — VB.NET — v11.7.0

> Chilkat 11.7.0 · language=vbnet · class=UnixCompress
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/UnixCompress.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/vbnet/guide.md`.

## Purpose

**Compress, uncompress, and unpack legacy UNIX `.Z` files.**

`Chilkat.UnixCompress` provides UNIX `compress` and `uncompress` functionality for legacy `.Z` files. It supports file-based, memory-based, and string-based workflows, uses LZW compression, can unpack `.tar.Z` archives, and includes abort and progress-related support for longer-running operations.

**Compress to .Z**

Compress files, memory data, or strings into UNIX `.Z` format using LZW compression.

**Uncompress .Z data**

Expand UNIX-compressed data back to files, memory, byte arrays, or text depending on the application workflow.

**File workflows**

Compress and uncompress directly between input and output files when working with existing filesystem data.

**Memory workflows**

Work with compressed or uncompressed byte data in memory when temporary files are not desired.

**String workflows**

Compress and uncompress text using an explicit character set so string data round-trips correctly.

**Unpack tar.Z archives**

Use `UnTarZ` to decompress and extract legacy `.tar.Z` archives in a single workflow.

**Common pattern:** Use `UnixCompress` when the data is in classic UNIX `.Z` format or when a `.tar.Z` archive must be unpacked. Use `Chilkat.Gzip` for `.gz` and `.tar.gz` files, `Chilkat.Bz2` for `.bz2` files, and `Chilkat.Compression` for raw compression algorithms and general-purpose compression workflows.

For an extended overview, see [UnixCompress Class Overview](https://www.chilkatsoft.com/unixcompress_class_overview.asp).

## Object creation, unlocking and error handling

**Object Creation**

```vbnet
Dim obj As New Chilkat.UnixCompress()
```

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in VB.NET.

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `DebugLogFilePath As String` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `LastErrorHtml As String (ReadOnly)` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `LastErrorText As String (ReadOnly)` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `LastErrorXml As String (ReadOnly)` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `LastMethodSuccess As Boolean` | read/write | Indicates the success or failure of the most recent method call: `True` means success, `False` means failure. |
| `VerboseLogging` | `VerboseLogging As Boolean` | read/write | If set to `True`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `Version As String (ReadOnly)` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `AbortCurrent` | property, read/write | `AbortCurrent As Boolean` |
| `HeartbeatMs` | property, read/write | `HeartbeatMs As Integer` |
| `CompressFile` | method | `Function CompressFile(ByVal inFilename As String, ByVal destPath As String) As Boolean` |
| `CompressFileToMem` | method | `Function CompressFileToMem(ByVal inFilename As String) As Byte()` |
| `CompressMemory` | method | `Function CompressMemory(ByVal inData As Byte()) As Byte()` |
| `CompressMemToFile` | method | `Function CompressMemToFile(ByVal inData As Byte(), ByVal destPath As String) As Boolean` |
| `CompressString` | method | `Function CompressString(ByVal inStr As String, ByVal charset As String) As Byte()` |
| `CompressStringToFile` | method | `Function CompressStringToFile(ByVal inStr As String, ByVal charset As String, ByVal destPath As String) As Boolean` |
| `LoadTaskCaller` | method | `Function LoadTaskCaller(ByVal task As Task) As Boolean` |
| `UncompressFile` | method | `Function UncompressFile(ByVal inFilename As String, ByVal destPath As String) As Boolean` |
| `UncompressFileToMem` | method | `Function UncompressFileToMem(ByVal inFilename As String) As Byte()` |
| `UncompressFileToString` | method | `Function UncompressFileToString(ByVal zFilename As String, ByVal charset As String) As String` |
| `UncompressMemory` | method | `Function UncompressMemory(ByVal inData As Byte()) As Byte()` |
| `UncompressMemToFile` | method | `Function UncompressMemToFile(ByVal inData As Byte(), ByVal destPath As String) As Boolean` |
| `UncompressString` | method | `Function UncompressString(ByVal inCompressedData As Byte(), ByVal charset As String) As String` |
| `UnTarZ` | method | `Function UnTarZ(ByVal zFilename As String, ByVal destDir As String, ByVal bNoAbsolute As Boolean) As Boolean` |

## Properties

### UnixCompress.AbortCurrent

`Chilkat 11.7.0 · vbnet · UnixCompress · AbortCurrent · property · read/write · since 9.5.0.58`

```vbnet
AbortCurrent As Boolean
```

When set to `True`, causes the currently running method to abort. Methods that always finish quickly (i.e.have no length file operations or network communications) are not affected. If no method is running, then this property is automatically reset to `False` when the next method is called. When the abort occurs, this property is reset to `False`. Both synchronous and asynchronous method calls can be aborted. (A synchronous method call could be aborted by setting this property from a separate thread.)

### UnixCompress.HeartbeatMs

`Chilkat 11.7.0 · vbnet · UnixCompress · HeartbeatMs · property · read/write`

```vbnet
HeartbeatMs As Integer
```

**Full documentation for this property (same in every language):** [Event Callback Examples](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/event_callback_examples.md)

The interval in milliseconds between each `AbortCheck` event callback, which enables an application to abort certain method calls before they complete. **By default, HeartbeatMs is set to** `0`**, meaning no AbortCheck event callbacks will trigger.**

## Methods

### UnixCompress.CompressFile

`Chilkat 11.7.0 · vbnet · UnixCompress · CompressFile · method`

```vbnet
Function CompressFile(ByVal inFilename As String, ByVal destPath As String) As Boolean
```

Compresses a file to create a UNIX compressed file (.Z). This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.

Returns True for success, False for failure.

Async variant: `CompressFileAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.CompressFileToMem

`Chilkat 11.7.0 · vbnet · UnixCompress · CompressFileToMem · method`

```vbnet
Function CompressFileToMem(ByVal inFilename As String) As Byte()
```

Unix compresses a file to an in-memory image of a .Z file. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns an empty byte array on failure

Async variant: `CompressFileToMemAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.CompressMemory

`Chilkat 11.7.0 · vbnet · UnixCompress · CompressMemory · method`

```vbnet
Function CompressMemory(ByVal inData As Byte()) As Byte()
```

Compresses in-memory data to an in-memory image of a .Z file. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns an empty byte array on failure

### UnixCompress.CompressMemToFile

`Chilkat 11.7.0 · vbnet · UnixCompress · CompressMemToFile · method`

```vbnet
Function CompressMemToFile(ByVal inData As Byte(), ByVal destPath As String) As Boolean
```

Unix compresses and creates a .Z file from in-memory data. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns True for success, False for failure.

### UnixCompress.CompressString

`Chilkat 11.7.0 · vbnet · UnixCompress · CompressString · method`

```vbnet
Function CompressString(ByVal inStr As String, ByVal charset As String) As Byte()
```

**Full documentation for this method (same in every language):** [List of Valid Charsets](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/charsets_supported_by_chilkat.md)

Compresses a string to an in-memory image of a .Z file. Prior to compression, the string is converted to the character encoding specified by `charset`. The `charset` can be any one of a large number of character encodings, such as `utf-8`, `iso-8859-1`, `Windows-1252`, `ucs-2`, etc.

Returns an empty byte array on failure

### UnixCompress.CompressStringToFile

`Chilkat 11.7.0 · vbnet · UnixCompress · CompressStringToFile · method`

```vbnet
Function CompressStringToFile(ByVal inStr As String, ByVal charset As String, ByVal destPath As String) As Boolean
```

**Full documentation for this method (same in every language):** [List of Valid Charsets](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/charsets_supported_by_chilkat.md)

Unix compresses and creates a .Z file from string data. The `charset` specifies the character encoding used for the byte representation of the characters when compressed. The `charset` can be any one of a large number of character encodings, such as `utf-8`, `iso-8859-1`, `Windows-1252`, `ucs-2`, etc.

Returns True for success, False for failure.

### UnixCompress.LoadTaskCaller

`Chilkat 11.7.0 · vbnet · UnixCompress · LoadTaskCaller · method · since 9.5.0.80`

```vbnet
Function LoadTaskCaller(ByVal task As Task) As Boolean
```

Loads the caller of the task's async method.

Returns True for success, False for failure.

### UnixCompress.UncompressFile

`Chilkat 11.7.0 · vbnet · UnixCompress · UncompressFile · method`

```vbnet
Function UncompressFile(ByVal inFilename As String, ByVal destPath As String) As Boolean
```

Uncompresses a .Z file. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns True for success, False for failure.

Async variant: `UncompressFileAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.UncompressFileToMem

`Chilkat 11.7.0 · vbnet · UnixCompress · UncompressFileToMem · method`

```vbnet
Function UncompressFileToMem(ByVal inFilename As String) As Byte()
```

Uncompresses a .Z file directly to memory. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns an empty byte array on failure

Async variant: `UncompressFileToMemAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.UncompressFileToString

`Chilkat 11.7.0 · vbnet · UnixCompress · UncompressFileToString · method`

```vbnet
Function UncompressFileToString(ByVal zFilename As String, ByVal charset As String) As String
```

**Full documentation for this method (same in every language):** [List of Valid Charsets](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/charsets_supported_by_chilkat.md)

Uncompresses a .Z file that contains a text file. The contents of the text file are returned as a string. The character encoding of the text file is specified by `charset`. Typical charsets are `iso-8859-1`, `utf-8`, `windows-1252`, `shift_JIS`, `big5`, etc.

Returns `Nothing` on failure

Async variant: `UncompressFileToStringAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.UncompressMemory

`Chilkat 11.7.0 · vbnet · UnixCompress · UncompressMemory · method`

```vbnet
Function UncompressMemory(ByVal inData As Byte()) As Byte()
```

Uncompresses from an in-memory image of a .Z file directly into memory. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns an empty byte array on failure

### UnixCompress.UncompressMemToFile

`Chilkat 11.7.0 · vbnet · UnixCompress · UncompressMemToFile · method`

```vbnet
Function UncompressMemToFile(ByVal inData As Byte(), ByVal destPath As String) As Boolean
```

Uncompresses from an in-memory image of a .Z file to a file. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns True for success, False for failure.

### UnixCompress.UncompressString

`Chilkat 11.7.0 · vbnet · UnixCompress · UncompressString · method`

```vbnet
Function UncompressString(ByVal inCompressedData As Byte(), ByVal charset As String) As String
```

**Full documentation for this method (same in every language):** [List of Valid Charsets](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/charsets_supported_by_chilkat.md)

Uncompresses from an in-memory image of a .Z file directly to a string. The `charset` specifies the character encoding used to interpret the bytes resulting from the decompression. The `charset` can be any one of a large number of character encodings, such as `utf-8`, `iso-8859-1`, `Windows-1252`, `ucs-2`, etc.

Returns `Nothing` on failure

### UnixCompress.UnTarZ

`Chilkat 11.7.0 · vbnet · UnixCompress · UnTarZ · method`

```vbnet
Function UnTarZ(ByVal zFilename As String, ByVal destDir As String, ByVal bNoAbsolute As Boolean) As Boolean
```

Unpacks a .tar.Z file. The decompress and untar occur in streaming mode. There are no temporary files and the memory footprint is constant (and small) while untarring.

Returns True for success, False for failure.

Async variant: `UnTarZAsync` — same arguments, returns a `Task` (see Async variants below).

## Events and callbacks

### UnixCompress.AbortCheck (event)

`Chilkat 11.7.0 · vbnet · UnixCompress · AbortCheck · event`

```vbnet
Event OnAbortCheck
```

Enables a method call to be aborted by triggering the AbortCheck event at intervals defined by the `HeartbeatMs` property. If HeartbeatMs is set to its default value of 0, no events will occur. For instance, set HeartbeatMs to 200 to trigger 5 AbortCheck events per second.

Event arguments are passed in a Chilkat.AbortCheckEventArgs object.

**Event callback implementation:**

Declare the object with the **WithEvents** keyword, then write a Sub with a **Handles** clause for the event. Visual Basic connects the two automatically, so no AddHandler call is needed.

```vbnet
Dim WithEvents unixcompress As Chilkat.UnixCompress

Private Sub unixcompress_OnAbortCheck(sender As Object, args As Chilkat.AbortCheckEventArgs) Handles unixcompress.OnAbortCheck

    ' application code goes here.

End Sub
```

### UnixCompress.PercentDone (event)

`Chilkat 11.7.0 · vbnet · UnixCompress · PercentDone · event`

```vbnet
Event OnPercentDone
```

This provides the percentage completion for any method involving network communications or time-consuming processing, assuming the progress can be measured as a percentage. This event is triggered only when it's possible and logical to express the operation's progress as a percentage. The `pctDone` argument will range from 1 to 100. For methods that finish quickly, the number of PercentDone callbacks may vary, but the final callback will have `pctDone` equal to 100. For longer operations, callbacks will not exceed one per percentage point (e.g., 1, 2, 3, ..., 98, 99, 100).

The PercentDone callback also acts as an `AbortCheck` event. For fast methods where PercentDone fires, an AbortCheck event may not trigger since the PercentDone callback already provides an opportunity to abort. For longer operations, where time between PercentDone callbacks is extended, AbortCheck callbacks enable more responsive operation termination.

To abort the operation, set the `abort` output argument to `True`. This will cause the method to terminate and return a failure status or corresponding failure value.

Event arguments are passed in a Chilkat.PercentDoneEventArgs object.

**Event callback implementation:**

Declare the object with the **WithEvents** keyword, then write a Sub with a **Handles** clause for the event. Visual Basic connects the two automatically, so no AddHandler call is needed.

```vbnet
Dim WithEvents unixcompress As Chilkat.UnixCompress

Private Sub unixcompress_OnPercentDone(sender As Object, args As Chilkat.PercentDoneEventArgs) Handles unixcompress.OnPercentDone

    ' application code goes here.

End Sub
```

### UnixCompress.ProgressInfo (event)

`Chilkat 11.7.0 · vbnet · UnixCompress · ProgressInfo · event`

```vbnet
Event OnProgressInfo
```

This event callback provides `tag name`/value pairs that detail what occurs during a method call. To discover existing tag names, create code to handle the event, emit the pairs, and review them. Most tag names are self-explanatory.

Note: Some Chilkat methods don't fire any ProgressInfo events.

Event arguments are passed in a Chilkat.ProgressInfoEventArgs object.

**Event callback implementation:**

Declare the object with the **WithEvents** keyword, then write a Sub with a **Handles** clause for the event. Visual Basic connects the two automatically, so no AddHandler call is needed.

```vbnet
Dim WithEvents unixcompress As Chilkat.UnixCompress

Private Sub unixcompress_OnProgressInfo(sender As Object, args As Chilkat.ProgressInfoEventArgs) Handles unixcompress.OnProgressInfo

    ' application code goes here.

End Sub
```

### UnixCompress.TaskCompleted (event)

`Chilkat 11.7.0 · vbnet · UnixCompress · TaskCompleted · event`

```vbnet
Event OnTaskCompleted
```

Called from the background thread when an asynchronous task completes.

Event arguments are passed in a Chilkat.TaskCompletedEventArgs object.

**Event callback implementation:**

Declare the object with the **WithEvents** keyword, then write a Sub with a **Handles** clause for the event. Visual Basic connects the two automatically, so no AddHandler call is needed.

```vbnet
Dim WithEvents unixcompress As Chilkat.UnixCompress

Private Sub unixcompress_OnTaskCompleted(sender As Object, args As Chilkat.TaskCompletedEventArgs) Handles unixcompress.OnTaskCompleted

    ' application code goes here.

End Sub
```

## Async variants

Each returns a `Task` instead of the result and takes the same arguments as the synchronous method; run the task, wait for `Finished`, then read the result from the task. No new Async methods are added from 11.7.0 on.

```vbnet
Function CompressFileAsync(ByVal inFilename As String, ByVal destPath As String) As Task
Function CompressFileToMemAsync(ByVal inFilename As String) As Task
Function UncompressFileAsync(ByVal inFilename As String, ByVal destPath As String) As Task
Function UncompressFileToMemAsync(ByVal inFilename As String) As Task
Function UncompressFileToStringAsync(ByVal zFilename As String, ByVal charset As String) As Task
Function UnTarZAsync(ByVal zFilename As String, ByVal destDir As String, ByVal bNoAbsolute As Boolean) As Task
```

## Related classes

[`Task`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/vbnet/classes/Task.md)

