# TIFFSetDirectory

## Synopsis

    #include <tiffio.h>

int TIFFSetDirectory(TIFF *tif, tdir_t dirnum)

int TIFFSetSubDirectory(TIFF *tif, uint64_t diroff)

## Description

`TIFFSetDirectory()` changes the current directory and reads its contents with `TIFFReadDirectory()`. The parameter dirnum specifies the subfile/directory as an integer number, with the first directory numbered zero. `TIFFSetDirectory()` only works with main-IFD chains because always starts with the first main-IFD and thus is able to reset the SubIFD reading chain to the main-IFD chain.

`TIFFSetSubDirectory()` acts like `TIFFSetDirectory()`, except the directory is specified as a file offset instead of an index; this is required for accessing subdirectories linked through a `SubIFD` tag. (see MultiPage SubIFD)

Directory query functions `TIFFCurrentDirectory()`, `TIFFCurrentDirOffset()`, `TIFFLastDirectory()` and `TIFFNumberOfDirectories()` retrieve information about directories in an open TIFF file. Be aware that until a directory is not written to file AND read back, the query functions won't retrieve the correct information!

## Return values

On successful return 1 is returned. Otherwise, 0 is returned if dirnum or diroff specifies a non-existent directory, or if an error was encountered while reading the directory's contents.

## Diagnostics

All error messages are directed to the `TIFFErrorExtR()` routine.

`"%s: Error fetching directory count"`:

> An error was encountered while reading the "directory count" field.

`"%s: Error fetching directory link"`:

> An error was encountered while reading the "link value" that points to the next directory in a file.

## See also

TIFFquery (3tiff), TIFFOpen (3tiff), TIFFCreateDirectory (3tiff), TIFFCustomDirectory (3tiff), TIFFWriteDirectory (3tiff), TIFFReadDirectory (3tiff), Multi Page / Multi Image TIFF, libtiff (3tiff)