Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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());
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 public function getBasenameWithoutExtension()
 {
     return Toolbox::getBasenameWithoutExtension($this->sPath);
 }