예제 #1
0
 /**
  * scan a single file
  * @param string path
  * @param string root (optional)
  * @return int size of the scanned file
  */
 public static function scanFile($path, $root = false)
 {
     // NOTE: Ugly hack to prevent shared files from going into the cache (the source already exists somewhere in the cache)
     if (substr($path, 0, 7) == '/Shared') {
         return;
     }
     if ($root === false) {
         $view = OC_Filesystem::getView();
     } else {
         $view = new OC_FilesystemView($root);
     }
     if (!$view->is_readable($path)) {
         return;
     }
     //cant read, nothing we can do
     clearstatcache();
     $mimetype = $view->getMimeType($path);
     $stat = $view->stat($path);
     if ($mimetype == 'httpd/unix-directory') {
         $stat['size'] = 0;
         $writable = $view->is_writable($path . '/');
     } else {
         $writable = $view->is_writable($path);
     }
     $stat['mimetype'] = $mimetype;
     $stat['writable'] = $writable;
     if ($path == '/') {
         $path = '';
     }
     self::put($path, $stat, $root);
     return $stat['size'];
 }
예제 #2
0
 /**
  * scan a single file
  * @param string path
  * @param string root (optional)
  * @return int size of the scanned file
  */
 public static function scanFile($path, $root = '')
 {
     if (!$root) {
         $view = OC_Filesystem::getView();
     } else {
         $view = new OC_FilesystemView($root == '/' ? '' : $root);
     }
     if (!$view->is_readable($path)) {
         return;
     }
     //cant read, nothing we can do
     clearstatcache();
     $mimetype = $view->getMimeType($path);
     $stat = $view->stat($path);
     if ($mimetype == 'httpd/unix-directory') {
         $writable = $view->is_writable($path . '/');
     } else {
         $writable = $view->is_writable($path);
     }
     $stat['mimetype'] = $mimetype;
     $stat['writable'] = $writable;
     if ($path == '/') {
         $path = '';
     }
     self::put($path, $stat, $root);
     return $stat['size'];
 }