public function determineFromFilePath($path, $includeFiles = true, $includeDirectories = true)
    {
        $path = $this->determineFilePath($path);

        $this->logger->debug(sprintf('Searching files in path: %s', $path));

        if ( ! file_exists($path) || ! is_readable($path)) {
            $this->logger->warning(sprintf('Could not read directory: %s', $path));

            return array();
        }

        $fileNames = preg_grep('/^\.+$/', scandir($path), PREG_GREP_INVERT);

        $files = array();

        if (count($fileNames) > 0) {
            natcasesort($fileNames);

            foreach ($fileNames as $fileName) {
                $fileName = $this->determineFilePath($fileName, $path);

                if ($includeFiles && is_file($fileName)) {
                    $files[] = $fileName;
                }

                if ($includeDirectories && is_dir($fileName)) {
                    $files[] = $fileName;
                }
            }
        }

        $this->logger->debug(sprintf('Found %d file(s)', count($files)));

        $this->logger->debug(sprintf('Files: %s%s', PHP_EOL, implode($files, PHP_EOL)));

        return $files;
    }