GCab Reference Manual: GCabFolder

## GCabFolder GCabFolder — A Cabinet folder |

## Stability Level

Stable, unless otherwise indicated

## Functions

GCabFolder * | gcab_folder_new ()
gboolean | gcab_folder_add_file ()
GSList * | gcab_folder_get_files ()
guint | gcab_folder_get_nfiles ()

## Properties

GCabCompression | compression | Read
gint | comptype | Read / Write / Construct Only
GByteArray * | reserved | Read / Write

## Types and Values

enum | GCabCompression
| GCabFolder

## Object Hierarchy

        GEnum
        ╰── GCabCompression
        GObject
        ╰── GCabFolder

## Includes

    #include <libgcab.h>

## Description

A GCabFolder is a handle to a folder within the Cabinet archive. A Cabinet folder is not like a directory. It is a sub-container grouping GCabFiles together, sharing some common settings like the compression method.

You can retrieve the files withing a folder with `gcab_folder_get_files()`.

In order to add a file to a folder for creation, use `gcab_folder_add_file()`.

## Functions

### gcab_folder_new ()

    GCabFolder *
    gcab_folder_new (gint comptype);

Creates a new empty Cabinet folder. Use `gcab_folder_add_file()` to add files to an archive.

A Cabinet folder is not a file path, it is a container for files.

#### Parameters

comptype | compression to used in this folder |

#### Returns

a new GCabFolder

### gcab_folder_add_file ()

    gboolean
    gcab_folder_add_file (GCabFolder *cabfolder,
                          GCabFile *cabfile,
                          gboolean recurse,
                          GCancellable *cancellable,
                          GError **error);

Add `file` to the GCabFolder.

#### Parameters

cabfolder | a GCabFolder |
cabfile | file to be added |
recurse | whether to recurse through subdirectories |
cancellable | optional GCancellable object, `NULL` to ignore. | [allow-none]
error | GError to set on error, or `NULL`. | [allow-none]

#### Returns

`TRUE` on succes

### gcab_folder_get_files ()

    GSList *
    gcab_folder_get_files (GCabFolder *cabfolder);

Get the list of GCabFile files contained in the `cabfolder` .

#### Parameters

cabfolder | a GCabFolder |

#### Returns

list of files.

[element-type GCabFile][transfer full]

### gcab_folder_get_nfiles ()

    guint
    gcab_folder_get_nfiles (GCabFolder *cabfolder);

Get the number of files in this `folder` .

#### Parameters

cabfolder | a GCabFolder |

#### Returns

a guint

## Types and Values

### enum GCabCompression

Compression used by the GCabFolder.

#### Members

GCAB_COMPRESSION_NONE | No compression. |
GCAB_COMPRESSION_MSZIP | MSZIP compression. |
GCAB_COMPRESSION_QUANTUM | QUANTUM compression. |
GCAB_COMPRESSION_LZX | LZX compression. |
GCAB_COMPRESSION_MASK | compression value mask. |

### GCabFolder

    typedef struct _GCabFolder GCabFolder;

An opaque object, referencing a folder in a Cabinet.

## Property Details

### The `“compression”` property

      “compression”              GCabCompression

compression.

Flags: Read

Default value: GCAB_COMPRESSION_NONE

### The `“comptype”` property

      “comptype”                 gint

comptype.

Flags: Read / Write / Construct Only

Allowed values: >= 0

Default value: 0

### The `“reserved”` property

      “reserved”                 GByteArray *

Reserved.

Flags: Read / Write

## See Also

GCabFolder