public function explore($sPath, $iOrderField = OrderField::NONE, $iOrderDirection = OrderDirection::ASC, array $aAllowedExtensions = [], array $aAllowedBasenamePatterns = []) { // Initialize $aFiles = []; // Get files $aList = scandir($sPath); if (!$aList) { throw new RuntimeException(sprintf('Error while exploring %s', $sPath)); } // Add file foreach ($aList as $sBasename) { // Create file $oFile = $this->metadata(sprintf('%s/%s', $sPath, $sBasename)); // Add file Toolbox::addFile($aFiles, $oFile, $aAllowedExtensions, $aAllowedBasenamePatterns); } // Order Toolbox::sortFiles($aFiles, $iOrderField, $iOrderDirection); // Return return $aFiles; }
public function testAddFile() { // Initialize $aAllowedExtensions = ['csv', 'doc']; $aAllowedBasenamePatterns = ['^path4', 'test']; $iSize = 200; $oDate = new DateTime(); $aFiles = [new File('/tmp/path1', $iSize, $oDate), new File('/tmp/path2', $iSize, $oDate)]; // Ignore . and .. Toolbox::addFile($aFiles, new File('/tmp/.', $iSize, $oDate)); Toolbox::addFile($aFiles, new File('/tmp/..', $iSize, $oDate)); $this->assertCount(2, $aFiles); // Test allowed extensions Toolbox::addFile($aFiles, new File('/tmp/path3.xls', $iSize, $oDate), $aAllowedExtensions); Toolbox::addFile($aFiles, new File('/tmp/path3.csv', $iSize, $oDate), $aAllowedExtensions); $this->assertCount(3, $aFiles); $this->assertEquals('path3.csv', $aFiles[2]->getBasename()); // Test allowed basename patterns Toolbox::addFile($aFiles, new File('/tmp/path34.csv', $iSize, $oDate), [], $aAllowedBasenamePatterns); Toolbox::addFile($aFiles, new File('/tmp/path4.csv', $iSize, $oDate), [], $aAllowedBasenamePatterns); $this->assertCount(4, $aFiles); $this->assertEquals('path4.csv', $aFiles[3]->getBasename()); }
public function explore($sPath, $iOrderField = OrderField::NONE, $iOrderDirection = OrderDirection::ASC, array $aAllowedExtensions = [], array $aAllowedBasenamePatterns = []) { // Initialize $aFiles = []; // Get files $aList = $this->exec(sprintf('ls -l \'%s\'', $this->escapeSingleQuotes($sPath))); // Remove total if (isset($aList[0]) && preg_match('/^total[\\s]+[0-9]+/', $aList[0]) > 0) { array_shift($aList); } // Add file foreach ($aList as $sFile) { // Initialize $oFile = Toolbox::parseRawList($sFile, $sPath); // Add file Toolbox::addFile($aFiles, $oFile, $aAllowedExtensions, $aAllowedBasenamePatterns); } // Order Toolbox::sortFiles($aFiles, $iOrderField, $iOrderDirection); // Return return $aFiles; }
public function explore($sPath, $iOrderField = OrderField::NONE, $iOrderDirection = OrderDirection::ASC, array $aAllowedExtensions = [], array $aAllowedBasenamePatterns = []) { // Initialize $aFiles = []; // Get CURL $oCurl = $this->curlInit(); // Execute CURL $sResponse = $this->curlExec($oCurl, $sPath, ObjectType::DIRECTORY, 'LIST -a'); // Get files $aList = explode("\n", $sResponse); // Add file foreach ($aList as $sFile) { if ($sFile !== '') { // Initialize $oFile = Toolbox::parseRawList($sFile, $sPath); // Add file Toolbox::addFile($aFiles, $oFile, $aAllowedExtensions, $aAllowedBasenamePatterns); } } // Order Toolbox::sortFiles($aFiles, $iOrderField, $iOrderDirection); // Return return $aFiles; }
public function getBasenameWithoutExtension() { return Toolbox::getBasenameWithoutExtension($this->sPath); }