

The SearchManager is in fact just an instance of this class, too. It can even be an accumulation of multiple other archives, and then it contains all files contained in all of these dirs (see class SearchSet). common/unzip.h and common/unarj.h), and then the "files" in it are members of that compressed file.

SCUMMVM FILES ARCHIVE
It can be a ZIP or ARJ archive (see resp. It can be a filesystem directory (implemented by FSDirectory), and then "contains" all the files in that directory (and possibly also files contained some levels deep in that dir). This class represents an accumulation of "files". This replaces the old "File::addDefaultDirectory()" system (these methods currently still exist for backwards compatibility, but directly call through to the SearchManager they will be scrapped eventually). When you want to open a file using class File, all these locations are searched. Think of this class as the analog of the "PATH" environment variable: It manages a list of locations (usually, just directories in your filesystem, but more elaborate things are possible, more on that later). If you want to open a file at a specific path, first create an FSNode from it, then use that to open the file by calling node->openForReading(). Warning: a "path" as returned by FSNode::getPath should *not* be passed to File::open(). That works fine, as long as you stay on the same OS / platform. Later, you read it back in, and create a new FSNode from it. you can "serialize" an FSNode to a path, via the FSNode::getPath() method, then write that to a config file. Hence, the only valid way to do that is to feed a "path" created by another FSNode to this FSNode. Caveat: You may not assume anything about the path format, like what the separator char is in fact, there may not even exist the *concept* of a path separator on the target system.
SCUMMVM FILES WINDOWS
Example: A FSNode could refer to "/home/you/foo.txt" (for the Windows folks, "C:\Documents\foo.txt"). Think of it as a generalization of a path. Represents one specific file or directory in the filesystem (which may or may not exist). The Parts of the System FSNode (from common/fs.h) By providing Archive subclasses, you can extend this arbitrarily.

In particular, the SearchMan is such an Archive subclass, and can wrap arbitrary paths, ZIP or ARJ archives, etc. a ZIPArchive) to it, and it will search for that file in the Archive).
SCUMMVM FILES HOW TO
See the doxygen documentation of that class to see how to access the contents of a file.
SCUMMVM FILES MAC OS
