> For the complete documentation index, see [llms.txt](https://chaoses-ib.gitbook.io/directory-opus/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chaoses-ib.gitbook.io/directory-opus/manual/reference/scripting_reference/scripting_objects/beforefolderchangedata.md).

# BeforeFolderChangeData

If a [script add-in](/directory-opus/manual/scripting/script_add-ins.md)implements the [**OnBeforeFolderChange**](/directory-opus/manual/reference/scripting_reference/scripting_events/onbeforefolderchange.md) event, the method receives a **BeforeFolderChangeData** object before the new folder is read.

| Property Name | Return Type                                                                                         | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| action        | *string*                                                                                            | <p>Returns a string indicating the action that triggered the folder read. The string will be one of the following: <em>normal</em>, <em>refresh</em>, <em>refreshsearch</em>, <em>refreshsub</em>, <em>parent</em>, <em>root</em>, <em>back</em>, <em>forward</em>, <em>dblclk</em>.<br>The <em>refreshsub</em> actions means the folder (and sub-folders) are being refreshed while Flat View is on. The other action names should be self-explanatory.</p> |
| initial       | *bool*                                                                                              | Returns **True** if this is the first path to be read into this tab (i.e. previously the tab was empty).                                                                                                                                                                                                                                                                                                                                                     |
| path          | *object:*[**Path**](/directory-opus/manual/reference/scripting_reference/scripting_objects/path.md) | Returns a [**Path**](/directory-opus/manual/reference/scripting_reference/scripting_objects/path.md) object representing the new path that is to be read.                                                                                                                                                                                                                                                                                                    |
| qualifiers    | *string*                                                                                            | <p>Returns a string indicating any qualifier keys that were held down by the user when the event was triggered.<br>The string can contain any or all of the following: <em>shift</em> <em>ctrl</em>, <em>alt</em>, <em>lwin</em>, <em>rwin</em><br>If no qualifiers were down, the string will be: <em>none</em></p>                                                                                                                                         |
| tab           | *object:*[**Tab**](/directory-opus/manual/reference/scripting_reference/scripting_objects/tab.md)   | Returns a [**Tab**](/directory-opus/manual/reference/scripting_reference/scripting_objects/tab.md) object representing the tab that is changing folder.                                                                                                                                                                                                                                                                                                      |
