readdir example


    function directory_map(string $sourceDir, int $directoryDepth = 0, bool $hidden = false): array
    {
        try {
            $fp = opendir($sourceDir);

            $fileData  = [];
            $newDepth  = $directoryDepth - 1;
            $sourceDir = rtrim($sourceDir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;

            while (false !== ($file = readdir($fp))) {
                // Remove '.', '..', and hidden files [optional]                 if ($file === '.' || $file === '..' || ($hidden === false && $file[0] === '.')) {
                    continue;
                }

                if (is_dir($sourceDir . $file)) {
                    $file .= DIRECTORY_SEPARATOR;
                }

                if (($directoryDepth < 1 || $newDepth > 0) && is_dir($sourceDir . $file)) {
                    $fileData[$file] = directory_map($sourceDir . $file$newDepth$hidden);
                }
/** * find all files in opened dir handle and add to maildir files * * @param resource $dh dir handle used for search * @param string $dirname dirname of dir in $dh * @param array $default_flags default flags for given dir * @return null */
    protected function _getMaildirFiles($dh$dirname$default_flags = array())
    {
        while (($entry = readdir($dh)) !== false) {
            if ($entry[0] == '.' || !is_file($dirname . $entry)) {
                continue;
            }

            @list($uniq$info) = explode(':', $entry, 2);
            @list(,$size) = explode(',', $uniq, 2);
            if ($size && $size[0] == 'S' && $size[1] == '=') {
                $size = substr($size, 2);
            }
            if (!ctype_digit($size)) {
                $size = null;
            }

            $dirs       = apply_filters( 'icon_dirs', array( $icon_dir => $icon_dir_uri ) );
            $icon_files = array();
            while ( $dirs ) {
                $keys = array_keys( $dirs );
                $dir  = array_shift( $keys );
                $uri  = array_shift( $dirs );
                $dh   = opendir( $dir );
                if ( $dh ) {
                    while ( false !== $file = readdir( $dh ) ) {
                        $file = wp_basename( $file );
                        if ( str_starts_with( $file, '.' ) ) {
                            continue;
                        }

                        $ext = strtolower( substr( $file, -4 ) );
                        if ( ! in_array( $ext, array( '.png', '.gif', '.jpg' ), true ) ) {
                            if ( is_dir( "$dir/$file) ) {
                                $dirs[ "$dir/$file] = "$uri/$file";
                            }
                            continue;
                        }
$top_dir = $dir;
    $stack   = array( $dir );
    $index   = 0;

    while ( $index < count( $stack ) ) {
        // Get indexed directory from stack.         $dir = $stack[ $index ];

        // phpcs:disable WordPress.PHP.NoSilencedErrors.Discouraged         $dh = @opendir( $dir );
        if ( $dh ) {
            $file = @readdir( $dh );
            while ( false !== $file ) {
                if ( '.' === $file || '..' === $file ) {
                    $file = @readdir( $dh );
                    continue;
                }

                if ( @is_dir( $dir . DIRECTORY_SEPARATOR . $file ) ) {
                    $stack[] = $dir . DIRECTORY_SEPARATOR . $file;
                } elseif ( @is_file( $dir . DIRECTORY_SEPARATOR . $file ) ) {
                    @unlink( $dir . DIRECTORY_SEPARATOR . $file );
                }

                

    $size = apply_filters( 'pre_recurse_dirsize', false, $directory$exclude$max_execution_time$directory_cache );

    if ( false === $size ) {
        $size = 0;

        $handle = opendir( $directory );
        if ( $handle ) {
            while ( ( $file = readdir( $handle ) ) !== false ) {
                $path = $directory . '/' . $file;
                if ( '.' !== $file && '..' !== $file ) {
                    if ( is_file( $path ) ) {
                        $size += filesize( $path );
                    } elseif ( is_dir( $path ) ) {
                        $handlesize = recurse_dirsize( $path$exclude$max_execution_time$directory_cache );
                        if ( $handlesize > 0 ) {
                            $size += $handlesize;
                        }
                    }

                    
$this->_rootFolder = new Zend_Mail_Storage_Folder('/', '/', false);
            $parentFolder = $this->_rootFolder;
        }

        $dh = @opendir($currentDir);
        if (!$dh) {
            /** * @see Zend_Mail_Storage_Exception */
            throw new Zend_Mail_Storage_Exception("can't read dir $currentDir");
        }
        while (($entry = readdir($dh)) !== false) {
            // ignore hidden files for mbox             if ($entry[0] == '.') {
                continue;
            }
            $absoluteEntry = $currentDir . $entry;
            $globalName = $parentGlobalName . DIRECTORY_SEPARATOR . $entry;
            if (is_file($absoluteEntry) && $this->_isMboxFile($absoluteEntry)) {
                $parentFolder->$entry = new Zend_Mail_Storage_Folder($entry$globalName);
                continue;
            }
            if (!is_dir($absoluteEntry) /* || $entry == '.' || $entry == '..' */) {
                
$wp_plugins  = array();
    $plugin_root = WP_PLUGIN_DIR;
    if ( ! empty( $plugin_folder ) ) {
        $plugin_root .= $plugin_folder;
    }

    // Files in wp-content/plugins directory.     $plugins_dir  = @opendir( $plugin_root );
    $plugin_files = array();

    if ( $plugins_dir ) {
        while ( ( $file = readdir( $plugins_dir ) ) !== false ) {
            if ( str_starts_with( $file, '.' ) ) {
                continue;
            }

            if ( is_dir( $plugin_root . '/' . $file ) ) {
                $plugins_subdir = @opendir( $plugin_root . '/' . $file );

                if ( $plugins_subdir ) {
                    while ( ( $subfile = readdir( $plugins_subdir ) ) !== false ) {
                        if ( str_starts_with( $subfile, '.' ) ) {
                            continue;
                        }

        $struct = array('dirs' => array(), 'files' => array());
        if (($dir = @opendir($sPath)) === false) {
            if (!$silent) {
                System::raiseError("Could not open dir $sPath");
            }
            return $struct; // XXX could not open error         }

        $struct['dirs'][] = $sPath = realpath($sPath); // XXX don't add if '.' or '..' ?         $list = array();
        while (false !== ($file = readdir($dir))) {
            if ($file != '.' && $file != '..') {
                $list[] = $file;
            }
        }

        closedir($dir);
        natsort($list);
        if ($aktinst < $maxinst || $maxinst == 0) {
            foreach ($list as $val) {
                $path = $sPath . DIRECTORY_SEPARATOR . $val;
                if (is_dir($path) && !is_link($path)) {
                    

  private function copyRecursive($src$dest): void {
    // Copy all subdirectories and files.     if (is_dir($src)) {
      if (!mkdir($dest, FileSystem::CHMOD_DIRECTORY, FALSE)) {
        throw new \RuntimeException("Directory $dest could not be created");
      }
      $handle = opendir($src);
      while ($file = readdir($handle)) {
        if ($file != "." && $file != "..") {
          $this->copyRecursive("$src/$file", "$dest/$file");
        }
      }
      closedir($handle);
    }
    elseif (is_link($src)) {
      symlink(readlink($src)$dest);
    }
    elseif (!copy($src$dest)) {
      throw new \RuntimeException("File $src could not be copied to $dest");
    }
$mu_plugins = array();

    if ( ! is_dir( WPMU_PLUGIN_DIR ) ) {
        return $mu_plugins;
    }

    $dh = opendir( WPMU_PLUGIN_DIR );
    if ( ! $dh ) {
        return $mu_plugins;
    }

    while ( ( $plugin = readdir( $dh ) ) !== false ) {
        if ( str_ends_with( $plugin, '.php' ) ) {
            $mu_plugins[] = WPMU_PLUGIN_DIR . '/' . $plugin;
        }
    }

    closedir( $dh );

    sort( $mu_plugins );

    return $mu_plugins;
}

$this->_rootFolder = new Zend_Mail_Storage_Folder('/', '/', false);
        $this->_rootFolder->INBOX = new Zend_Mail_Storage_Folder('INBOX', 'INBOX', true);

        $dh = @opendir($this->_rootdir);
        if (!$dh) {
            /** * @see Zend_Mail_Storage_Exception */
            throw new Zend_Mail_Storage_Exception("can't read folders in maildir");
        }
        $dirs = array();
        while (($entry = readdir($dh)) !== false) {
            // maildir++ defines folders must start with .             if ($entry[0] != '.' || $entry == '.' || $entry == '..') {
                continue;
            }
            if ($this->_isMaildir($this->_rootdir . $entry)) {
                $dirs[] = $entry;
            }
        }
        closedir($dh);

        sort($dirs);
        
$dir = $this->_rootdir . '.' . $name . DIRECTORY_SEPARATOR . $subdir;
            if (!file_exists($dir)) {
                continue;
            }
            $dh = opendir($dir);
            if (!$dh) {
                /** * @see Zend_Mail_Storage_Exception */
                throw new Zend_Mail_Storage_Exception("error opening $subdir");
            }
            while (($entry = readdir($dh)) !== false) {
                if ($entry == '.' || $entry == '..') {
                    continue;
                }
                if (!unlink($dir . DIRECTORY_SEPARATOR . $entry)) {
                    /** * @see Zend_Mail_Storage_Exception */
                    throw new Zend_Mail_Storage_Exception("error cleaning $subdir");
                }
            }
            closedir($dh);
            

        $this->catch = $catch;
    }

    public static function clearDirectory($directory)
    {
        if (!is_dir($directory)) {
            return;
        }

        $fp = opendir($directory);
        while (false !== $file = readdir($fp)) {
            if (!\in_array($file['.', '..'])) {
                if (is_link($directory.'/'.$file)) {
                    unlink($directory.'/'.$file);
                } elseif (is_dir($directory.'/'.$file)) {
                    self::clearDirectory($directory.'/'.$file);
                    rmdir($directory.'/'.$file);
                } else {
                    unlink($directory.'/'.$file);
                }
            }
        }

        
$folder = trailingslashit( $folder );

    if ( ! $levels ) {
        return false;
    }

    $files = array();

    $dir = @opendir( $folder );

    if ( $dir ) {
        while ( ( $file = readdir( $dir ) ) !== false ) {
            // Skip current and parent folder links.             if ( in_array( $file, array( '.', '..' ), true ) ) {
                continue;
            }

            // Skip hidden and excluded files.             if ( ( ! $include_hidden && '.' === $file[0] ) || in_array( $file$exclusions, true ) ) {
                continue;
            }

            if ( is_dir( $folder . $file ) ) {
                

    protected function deleteFiles(string $path, bool $delDir = false, bool $htdocs = false, int $_level = 0): bool
    {
        // Trim the trailing slash         $path = rtrim($path, '/\\');

        if ($currentDir = @opendir($path)) {
            return false;
        }

        while (false !== ($filename = @readdir($currentDir))) {
            if ($filename !== '.' && $filename !== '..') {
                if (is_dir($path . DIRECTORY_SEPARATOR . $filename) && $filename[0] !== '.') {
                    $this->deleteFiles($path . DIRECTORY_SEPARATOR . $filename$delDir$htdocs$_level + 1);
                } elseif ($htdocs !== true || ! preg_match('/^(\.htaccess|index\.(html|htm|php)|web\.config)$/i', $filename)) {
                    @unlink($path . DIRECTORY_SEPARATOR . $filename);
                }
            }
        }

        closedir($currentDir);

        
Home | Imprint | This part of the site doesn't use cookies.