/**
  * scan a folder for music
  * @param string $path
  * @return int the number of songs found
  */
 public static function scanFolder($path)
 {
     if (OC_Filesystem::is_dir($path)) {
         $songs = 0;
         if ($dh = OC_Filesystem::opendir($path)) {
             while (($filename = readdir($dh)) !== false) {
                 if ($filename != '.' and $filename != '..' and substr($filename, 0, 1) != '.') {
                     $file = $path . '/' . $filename;
                     if (OC_Filesystem::is_dir($file)) {
                         $songs += self::scanFolder($file);
                     } elseif (OC_Filesystem::is_file($file)) {
                         $data = self::scanFile($file);
                         if ($data) {
                             $songs++;
                         }
                     }
                 }
             }
         }
     } elseif (OC_Filesystem::is_file($path)) {
         $songs = 1;
         self::scanFile($path);
     } else {
         $songs = 0;
     }
     return $songs;
 }
Ejemplo n.º 2
0
 /**
  * Returns an array with all the child nodes
  *
  * @return Sabre_DAV_INode[]
  */
 public function getChildren()
 {
     $nodes = array();
     // foreach(scandir($this->path) as $node) if($node!='.' && $node!='..') $nodes[] = $this->getChild($node);
     if (OC_Filesystem::is_dir($this->path . '/')) {
         $dh = OC_Filesystem::opendir($this->path . '/');
         while (($node = readdir($dh)) !== false) {
             if ($node != '.' && $node != '..') {
                 $nodes[] = $this->getChild($node);
             }
         }
     }
     return $nodes;
 }
 /**
  * get the content of a directory
  * @param dir $directory
  */
 public static function getDirectoryContent($directory)
 {
     if (strpos($directory, OC::$CONFIG_DATADIRECTORY) === 0) {
         $directory = substr($directory, strlen(OC::$CONFIG_DATADIRECTORY));
     }
     $filesfound = true;
     $content = array();
     $dirs = array();
     $file = array();
     $files = array();
     if (OC_Filesystem::is_dir($directory)) {
         if ($dh = OC_Filesystem::opendir($directory)) {
             while (($filename = readdir($dh)) !== false) {
                 if ($filename != '.' and $filename != '..' and substr($filename, 0, 1) != '.') {
                     $file = array();
                     $filesfound = true;
                     $file['name'] = $filename;
                     $file['directory'] = $directory;
                     $stat = OC_Filesystem::stat($directory . '/' . $filename);
                     $file = array_merge($file, $stat);
                     $file['size'] = OC_Filesystem::filesize($directory . '/' . $filename);
                     $file['mime'] = OC_Files::getMimeType($directory . '/' . $filename);
                     $file['readable'] = OC_Filesystem::is_readable($directory . '/' . $filename);
                     $file['writeable'] = OC_Filesystem::is_writeable($directory . '/' . $filename);
                     $file['type'] = OC_Filesystem::filetype($directory . '/' . $filename);
                     if ($file['type'] == 'dir') {
                         $dirs[$file['name']] = $file;
                     } else {
                         $files[$file['name']] = $file;
                     }
                 }
             }
             closedir($dh);
         }
     }
     uksort($dirs, "strnatcasecmp");
     uksort($files, "strnatcasecmp");
     $content = array_merge($dirs, $files);
     if ($filesfound) {
         return $content;
     } else {
         return false;
     }
 }
}
if (substr($query, -1, 1) == '/') {
    $base = $query;
} else {
    $base = dirname($query);
}
$query = substr($query, strlen($base));
if ($base != '/') {
    $query = substr($query, 1);
}
$queryLen = strlen($query);
$query = strtolower($query);
// echo "$base - $query";
$files = array();
if (OC_Filesystem::file_exists($base) and OC_Filesystem::is_dir($base)) {
    $dh = OC_Filesystem::opendir($base);
    if ($dh) {
        if (substr($base, -1, 1) != '/') {
            $base = $base . '/';
        }
        while (($file = readdir($dh)) !== false) {
            if ($file != "." && $file != "..") {
                if (substr(strtolower($file), 0, $queryLen) == $query) {
                    $item = $base . $file;
                    if (!$dirOnly or OC_Filesystem::is_dir($item)) {
                        $files[] = (object) array('id' => $item, 'label' => $item, 'name' => $item);
                    }
                }
            }
        }
    }
function findMusic($path = '')
{
    $music = array();
    $dh = OC_Filesystem::opendir($path);
    if ($dh) {
        while ($filename = readdir($dh)) {
            if ($filename[0] != '.') {
                $file = $path . '/' . $filename;
                if (OC_Filesystem::is_dir($file)) {
                    $music = array_merge($music, findMusic($file));
                } else {
                    if (OC_MEDIA_SCANNER::isMusic($filename)) {
                        $music[] = $file;
                    }
                }
            }
        }
    }
    return $music;
}