private function _getFileMeta($file, $parentLevel = 0)
    {
        $meta = array('file' => $file);

        if ($meta['exist'] = (bool)file_exists($file)) {
            $meta['writeable'] = (bool)is_writable($file);

            $uid = fileowner($file);
            if (function_exists('posix_getpwuid')) {
                $uinfo = posix_getpwuid($uid);
                $uid   = $uinfo['name'];
            }

            $gid = filegroup($file);
            if (function_exists('posix_getgrgid')) {
                $ginfo = posix_getgrgid($gid);
                $gid   = $ginfo['name'];
            }

            $meta['owner']                  = $uid;
            $meta['group']                  = $gid;
            $meta['permission']             = substr(sprintf('%o', fileperms($file)), -4);
            $meta['last_modification_time'] = date('d.m.Y H:i:s', filemtime($file));

            if (is_file($file)) {
                $meta['filesize'] = round(filesize($file) / (1024 * 1024), 4) . ' MB';
            }
        } elseif ($parentLevel > 0) {
            $fInfo = pathinfo($file);
            if (file_exists($fInfo['dirname'])) {
                $meta['parent_dir'] = $this->_getFileMeta($fInfo['dirname'], --$parentLevel);
            }
        }

        return $meta;
    }