#include <tiffio.h>
int TIFFSetDirectory(TIFF *tif, tdir_t dirnum)
int TIFFSetSubDirectory(TIFF *tif, uint64_t diroff)


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 allways 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.


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.