private function dircopy(Gpf_Io_File $source, Gpf_Io_File $target)
 {
     if (!$source->isDirectory()) {
         $this->copyFile($source, $target);
         return;
     }
     if (!$target->isExists()) {
         $target->mkdir(true, $this->mode);
     }
     $dir = dir($source->getFileName());
     $entries = array();
     while (false !== ($entry = $dir->read())) {
         $entries[] = $entry;
     }
     $dir->close();
     sort($entries);
     foreach ($entries as $entry) {
         if ($entry == '.' || $entry == '..' || $entry == '.svn') {
             continue;
         }
         $newSource = new Gpf_Io_File(rtrim($source->getFileName(), '/') . '/' . $entry);
         $newTarget = new Gpf_Io_File(rtrim($target->getFileName(), '/') . '/' . $entry);
         if ($newSource->isDirectory()) {
             $this->dircopy($newSource, $newTarget);
             continue;
         }
         $this->copyFile($newSource, $newTarget);
     }
 }
 /**
  * @return Gpf_Io_File
  */
 private function loadFile($fileName) {
     $file = new Gpf_Io_File($this->siteDir->getFileName().$fileName);
     if ($file->isDirectory()) {
         $file = $this->findIndexFiles($file, array('index.php', 'index.html', 'index.htm'));
     }
     if (!$file->isExists()) {
         throw new Gpf_Exception(sprintf('404 File not found \'%s\'', $fileName));
     }
     return $file;
 }
 private function loadSubfilesFiles($fileUrl, Gpf_Data_RecordSet $result, $directories = false)
 {
     foreach (new Gpf_Io_DirectoryIterator($fileUrl, '', false, $directories) as $fullFileName => $file) {
         $file = new Gpf_Io_File($fullFileName);
         if ($file->isDirectory()) {
             $filesData = $this->getFilesData($fullFileName);
             $result->add(array($fullFileName, $filesData['count'], $file->getName(), $filesData['size'], self::TYPE_DIRECTORY));
             continue;
         }
         $result->add(array($fullFileName, 0, $file->getName(), $file->getSize(), self::TYPE_FILE));
     }
 }
Example #4
0
 private static function resolveCompileDirInInstallMode()
 {
     $tempDir = new Gpf_Io_File(str_replace('\\', '/', self::getSysTempDir()));
     if ($tempDir->isDirectory() && $tempDir->isWritable()) {
         return $tempDir->getFileName();
     }
     $accountsDir = new Gpf_Io_File(Gpf_Paths::getInstance()->getFullBaseServerPath() . Gpf_Paths::ACCOUNTS_DIR);
     if ($accountsDir->isDirectory() && $accountsDir->isWritable()) {
         return self::getTempInAccountsDir();
     }
     return self::INSTALL_STREAM . '://:';
 }