Edit file File name : DupArchiveScanUtil.php Content :<?php /** * * @package Duplicator * @copyright (c) 2021, Snapcreek LLC */ namespace Duplicator\Libs\DupArchive\Utils; use Duplicator\Libs\Snap\SnapJson; use Exception; use stdClass; /** * Description of class * * @author Robert */ class DupArchiveScanUtil { /** * Get scan * * @param string $scanFilepath scan file path * * @return void */ public static function getScan($scanFilepath) { DupArchiveUtil::tlog("Getting scen"); $scan_handle = fopen($scanFilepath, 'r'); if ($scan_handle === false) { throw new Exception("Can't open {$scanFilepath}"); } $scan_file = fread($scan_handle, filesize($scanFilepath)); if ($scan_file === false) { throw new Exception("Can't read from {$scanFilepath}"); } $scan = json_decode($scan_file); if (!$scan) { throw new Exception("Error decoding scan file"); } fclose($scan_handle); return $scan; } /** * Get scan object * * @param string $sourceDirectory folder to scan * * @return stdClass */ public static function createScanObject($sourceDirectory) { $scan = new stdClass(); $scan->Dirs = DupArchiveUtil::expandDirectories($sourceDirectory, true); $scan->Files = DupArchiveUtil::expandFiles($sourceDirectory, true); return $scan; } /** * Scan folder and add result to scan file * * @param string $scanFilepath scan file * @param string $sourceDirectory folder to scan * * @return void */ public static function createScan($scanFilepath, $sourceDirectory) { DupArchiveUtil::tlog("Creating scan"); $scan = self::createScanObject($sourceDirectory); $scan_handle = fopen($scanFilepath, 'w'); if ($scan_handle === false) { echo "Couldn't create scan file"; die(); } $jsn = SnapJson::jsonEncode($scan); fwrite($scan_handle, $jsn); return $scan; } } Save