'Retrieve a directory listing of files/folders at *path*
:param string/unicode service_name: the name of the shared folder for the *path*
:param string/unicode path: path relative to the *service_name* where we are interested to learn about its files/sub-folders.
:param integer search: integer value made up from a bitwise-OR of *SMB_FILE_ATTRIBUTE_xxx* bits (see smb_constants.py).
The default *search* value will query for all read-only, hidden, system, archive files and directories.
:param string/unicode pattern: the filter to apply to the results before returning to the client.
:param integer/float timeout: Number of seconds that pysmb will wait before raising *SMBTimeout* via the returned *Deferred* instance\'s *errback* method.
:return: A *twisted.internet.defer.Deferred* instance. The callback function will be called with a list of :doc:`smb.base.SharedFile<smb_SharedFile>` instances.'

def listPath(self, service_name, path, search=((((SMB_FILE_ATTRIBUTE_READONLY | SMB_FILE_ATTRIBUTE_HIDDEN) | SMB_FILE_ATTRIBUTE_SYSTEM) | SMB_FILE_ATTRIBUTE_DIRECTORY) | SMB_FILE_ATTRIBUTE_ARCHIVE), pattern='*', timeout=30):

    if (not self.instance):
        raise NotConnectedError('Not    connected    to    server')
    d = defer.Deferred()
    self.instance._listPath(service_name, path, d.callback, d.errback, search=search, pattern=pattern, timeout=timeout)
    return d
