1. In a computing environment, a method for synchronizing cached files and directories, the method comprising: obtaining synchronization state information corresponding to a state of a client cache item of a client computing device and a state of server file system item of a server computing device remote relative to the client computing device; providing a plurality of data structures, each data structure representing a subset of a plurality of actions, wherein each action represented in the data structure corresponds to an action acting on objects having common state of at least one of the client cache item and the server file system item; determining a data structure from among the plurality of data structures based on a first set of information contained within the synchronization state information; choosing an action from among the subset of a plurality of actions represented by the determined data structure based on a second set of information contained within the synchronization state information, wherein the second set of information comprises: (1) information indicating whether the client cache item was modified, (2) information indicating whether the server file system item was modified, (3) information indicating whether the client cache item is a directory, (4) information indicating whether the server file system item is a directory, (5) information indicating whether modification to the client item was performed offline, or (6) information indicating whether the client item is sparse; and taking the action.