Weak hands cannot be planted, meager skills have no foundation. Shallow wisdom is futile, how can one hope for a good name?扰扰从役倦，屑屑身事微。少壮轻年月，迟暮惜光辉。
<html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><?php

require_once __DIR__ . '/wfFileUtils.php';
require_once __DIR__ . '/wfScanFile.php';
require_once __DIR__ . '/wfScanFileLink.php';

class wfScanPath {

	private $baseDirectory;
	private $path;
	private $realPath;
	private $wordpressPath;
	private $expectedFiles;

	public function __construct($baseDirectory, $path, $wordpressPath = null, $expectedFiles = null) {
		$this->baseDirectory = $baseDirectory;
		$this->path = $path;
		$this->realPath = wfFileUtils::realPath($path);
		$this->wordpressPath = $wordpressPath;
		$this->expectedFiles = is_array($expectedFiles) ? array_flip($expectedFiles) : null;
	}

	public function getPath() {
		return $this->path;
	}

	public function getRealPath() {
		return $this->realPath;
	}

	public function getWordpressPath() {
		return $this->wordpressPath;
	}

	public function hasExpectedFiles() {
		return $this->expectedFiles !== null && !empty($this->expectedFiles);
	}

	public function expectsFile($name) {
		return array_key_exists($name, $this->expectedFiles);
	}

	public function isBaseDirectory() {
		return $this->path === $this->baseDirectory;
	}

	public function isBelowBaseDirectory() {
		return wfFileUtils::belongsTo($this->path, $this->baseDirectory);
	}

	pu