improved folder deleting
This commit is contained in:
		| @@ -107,17 +107,44 @@ abstract class FileUtil { | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Delete the Temporary Folder if it's empty | ||||
| 	 * Delete the temporary folder if it's empty | ||||
| 	 * | ||||
| 	 * @return bool | ||||
| 	 */ | ||||
| 	public static function removeTempFolder() { | ||||
| 		$tempFolder = self::getTempFolder(); | ||||
| 		return @rmdir($tempFolder); | ||||
| 	public static function deleteTempFolder() { | ||||
| 		return self::deleteFolder(self::getTempFolder()); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Get the Temporary Folder and create it if necessary | ||||
| 	 * Delete the given folder if it's empty | ||||
| 	 * | ||||
| 	 * @param string $folderPath | ||||
| 	 * @param bool   $onlyIfEmpty | ||||
| 	 * @return bool | ||||
| 	 */ | ||||
| 	public static function deleteFolder($folderPath, $onlyIfEmpty = true) { | ||||
| 		if ($onlyIfEmpty && !self::isFolderEmpty($folderPath)) { | ||||
| 			return false; | ||||
| 		} | ||||
| 		return rmdir($folderPath); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Check if the given folder is empty | ||||
| 	 * | ||||
| 	 * @param string $folderPath | ||||
| 	 * @return bool | ||||
| 	 */ | ||||
| 	public static function isFolderEmpty($folderPath) { | ||||
| 		if (!is_readable($folderPath) || !is_dir($folderPath)) { | ||||
| 			return false; | ||||
| 		} | ||||
| 		$files = scandir($folderPath); | ||||
| 		return (count($files) <= 2); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Get the temporary folder and create it if necessary | ||||
| 	 * | ||||
| 	 * @return string|bool | ||||
| 	 */ | ||||
| @@ -156,7 +183,6 @@ abstract class FileUtil { | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		return true; | ||||
| 	} | ||||
|  | ||||
| @@ -176,7 +202,8 @@ abstract class FileUtil { | ||||
| 		if (!is_resource($dirHandle)) { | ||||
| 			return false; | ||||
| 		} | ||||
| 		$time = time(); | ||||
| 		$directory = self::appendDirectorySeparator($directory); | ||||
| 		$time      = time(); | ||||
| 		while ($fileName = readdir($dirHandle)) { | ||||
| 			$filePath = $directory . $fileName; | ||||
| 			if (!is_readable($filePath)) { | ||||
| @@ -200,4 +227,17 @@ abstract class FileUtil { | ||||
| 		closedir($dirHandle); | ||||
| 		return true; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Append the directory separator to the given path if necessary | ||||
| 	 * | ||||
| 	 * @param string $path | ||||
| 	 * @return string | ||||
| 	 */ | ||||
| 	public static function appendDirectorySeparator($path) { | ||||
| 		if (substr($path, -1, 1) !== DIRECTORY_SEPARATOR) { | ||||
| 			$path .= DIRECTORY_SEPARATOR; | ||||
| 		} | ||||
| 		return $path; | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -281,7 +281,7 @@ class PluginUpdateManager implements CallbackListener, CommandListener, TimerLis | ||||
| 			$zip->extractTo(ManiaControlDir . 'plugins' . DIRECTORY_SEPARATOR); | ||||
| 			$zip->close(); | ||||
| 			unlink($updateFileName); | ||||
| 			FileUtil::removeTempFolder(); | ||||
| 			FileUtil::deleteTempFolder(); | ||||
|  | ||||
| 			$messageExtra = ''; | ||||
| 			if ($update) { | ||||
|   | ||||
| @@ -353,7 +353,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener | ||||
| 			$zip->extractTo(ManiaControlDir); | ||||
| 			$zip->close(); | ||||
| 			unlink($updateFileName); | ||||
| 			FileUtil::removeTempFolder(); | ||||
| 			FileUtil::deleteTempFolder(); | ||||
|  | ||||
| 			// Set the Nightly Build Date | ||||
| 			$this->setNightlyBuildDate($updateData->releaseDate); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user