Exemplo n.º 1
0
 /**
  * Store a file and return the hash
  * @param  File $file
  * @return string $hash
  */
 public function storeFile(File $file)
 {
     $hash = md5_file($file->getPathname());
     if (!$this->fileSystem->exists($this->getPath($hash))) {
         $this->fileSystem->rename($file->getPathname(), $this->getPath($hash));
     }
     return $hash;
 }
Exemplo n.º 2
0
 /**
  * Store a learning material file and return the relativePath
  * @param File $file
  * @param boolean $preserveOriginalFile
  * @return string $relativePath
  */
 public function storeLearningMaterialFile(File $file, $preserveOriginalFile = true)
 {
     $relativePath = $this->getLearningMaterialFilePath($file);
     $fullPath = $this->getPath($relativePath);
     $dir = dirname($fullPath);
     $this->fileSystem->mkdir($dir);
     if ($preserveOriginalFile) {
         $this->fileSystem->copy($file->getPathname(), $fullPath, false);
     } else {
         if (!$this->fileSystem->exists($fullPath)) {
             $this->fileSystem->rename($file->getPathname(), $fullPath);
         }
     }
     return $relativePath;
 }
Exemplo n.º 3
0
 public function extractTo($extractPath, $files = null)
 {
     $fs = new FileSystem();
     $ds = DIRECTORY_SEPARATOR;
     for ($i = 0; $i < $this->numFiles; $i++) {
         $oldName = parent::getNameIndex($i);
         $newName = mb_convert_encoding($this->getNameIndex($i), 'ISO-8859-1', 'CP850,UTF-8');
         //we cheat a little because we can't tell wich name the extracted part should have
         //so we put it a directory wich share it's name
         $tmpDir = $extractPath . $ds . '__claro_zip_hack_' . $oldName;
         parent::extractTo($tmpDir, parent::getNameIndex($i));
         //now we move the content of the directory and we put the good name on it.
         foreach ($iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($tmpDir, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST) as $item) {
             if ($item->isFile()) {
                 $fs->mkdir(dirname($extractPath . $ds . $oldName));
                 $fs->rename($item->getPathname(), $extractPath . $ds . $oldName);
             }
         }
     }
     //we remove our 'trash here'
     $iterator = new \DirectoryIterator($extractPath);
     foreach ($iterator as $item) {
         if (strpos($item->getFilename(), '_claro_zip_hack')) {
             $fs->rmdir($item->getRealPath(), true);
         }
     }
 }
 /**
  * @param $file
  * @param $newName new filename
  * @return StandardResponseInterface
  */
 public function renameFile($file, $newName)
 {
     if (!$this->isNameValid($newName)) {
         return new StandardResponse(false, 'New name not valid');
     }
     $fullPath = $this->getRealPath($file);
     $this->fs->rename($fullPath, dirname($fullPath) . '/' . $newName);
     return new StandardResponse();
 }
Exemplo n.º 5
0
 /**
  * Renames a file or directory
  */
 public function rename($path_from, $path_to)
 {
     if (!$this->initPath($path_to)) {
         return FALSE;
     }
     $keyTo = $this->getFileName();
     if (!$this->initPath($path_from)) {
         return FALSE;
     }
     $keyFrom = $this->getFileName();
     return $this->fileSystem->rename($keyFrom, $keyTo);
 }
Exemplo n.º 6
0
 /**
  * create backup by renaming original file
  *
  * @param string $fileName		file name
  */
 function createBackup($fileName)
 {
     $ext = substr($fileName, strrpos($fileName, '.'));
     $name = substr($fileName, 0, strrpos($fileName, '.'));
     $backupName = $fileName;
     $cnt = 0;
     while ($this->getEntryByName($backupName)) {
         $cnt++;
         $backupName = $name . "({$cnt}){$ext}";
     }
     if ($cnt > 0) {
         $this->FileSystem->rename($this->curDir . '/' . $fileName, $this->curDir . '/' . $backupName);
     }
 }