improved file class
This commit is contained in:
@@ -6,6 +6,8 @@ class File
|
|||||||
{
|
{
|
||||||
|
|
||||||
private $dirName;
|
private $dirName;
|
||||||
|
private $suffix;
|
||||||
|
private $files;
|
||||||
|
|
||||||
//$dir_name = iconv("utf-8", "gb2312", $dir_name);
|
//$dir_name = iconv("utf-8", "gb2312", $dir_name);
|
||||||
|
|
||||||
@@ -14,11 +16,6 @@ class File
|
|||||||
|
|
||||||
$this->dirName = $dirname;
|
$this->dirName = $dirname;
|
||||||
$this->suffix = $suffix;
|
$this->suffix = $suffix;
|
||||||
|
|
||||||
if (!is_dir($dirname)) {
|
|
||||||
throw new \Exception("directory ${dirname} doesn't exit");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function create($dir, $suffix)
|
public static function create($dir, $suffix)
|
||||||
@@ -26,34 +23,42 @@ class File
|
|||||||
return new static($dir, $suffix);
|
return new static($dir, $suffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getFiles()
|
||||||
|
{
|
||||||
|
return $this->files;
|
||||||
|
}
|
||||||
|
|
||||||
public function scandir($recursive = false)
|
public function scandir($recursive = false)
|
||||||
{
|
{
|
||||||
|
if (!is_dir($this->dirName)) {
|
||||||
|
throw new \Exception("directory {$this->dirName} doesn't exist");
|
||||||
|
}
|
||||||
|
|
||||||
if ($recursive) {
|
if ($recursive) {
|
||||||
return $this->scandirRecursive();
|
$this->files = $this->scandirRecursive();
|
||||||
|
return $this->files;
|
||||||
}
|
}
|
||||||
|
|
||||||
$files = \glob($this->dirName . DIRECTORY_SEPARATOR . "*.{$this->suffix}");
|
$files = \glob($this->dirName . DIRECTORY_SEPARATOR . "*.{$this->suffix}");
|
||||||
$this->Files = $files;
|
$this->files = $files;
|
||||||
return $files;
|
return $files;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function scandirRecursive()
|
protected function scandirRecursive()
|
||||||
{
|
{
|
||||||
|
|
||||||
$directory = new \RecursiveDirectoryIterator($this->dirName);
|
$directory = new \RecursiveDirectoryIterator($this->dirName);
|
||||||
$iterator = new \RecursiveIteratorIterator($directory);
|
$iterator = new \RecursiveIteratorIterator($directory);
|
||||||
$iterators = new \RegexIterator($iterator, '/.*\.' . $this->suffix . '$/', \RegexIterator::GET_MATCH);
|
$iterators = new \RegexIterator($iterator, '/.*\.' . $this->suffix . '$/', \RegexIterator::GET_MATCH);
|
||||||
|
|
||||||
$files = array();
|
|
||||||
foreach ($iterators as $info) {
|
foreach ($iterators as $info) {
|
||||||
if ($info) {
|
if ($info) {
|
||||||
$files[] = reset($info);
|
yield reset($info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->Files = $files;
|
|
||||||
return $files;
|
|
||||||
}
|
}
|
||||||
public function getBasename($file){
|
|
||||||
return basename($file,".".$this->suffix);
|
static public function getBasename($file)
|
||||||
|
{
|
||||||
|
return pathinfo($file, PATHINFO_FILENAME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ class Helper
|
|||||||
$files = $filetool->scandir();
|
$files = $filetool->scandir();
|
||||||
$sites = [];
|
$sites = [];
|
||||||
foreach ($files as $file) {
|
foreach ($files as $file) {
|
||||||
$basename = $filetool->getBasename($file);
|
$basename = File::getBasename($file);
|
||||||
$namespace = 'OCA\\NCDownloader\\Search\\Sites\\';
|
$namespace = 'OCA\\NCDownloader\\Search\\Sites\\';
|
||||||
$className = $namespace . $basename;
|
$className = $namespace . $basename;
|
||||||
if (in_array(searchInterface::class, class_implements($className))) {
|
if (in_array(searchInterface::class, class_implements($className))) {
|
||||||
|
|||||||
Reference in New Issue
Block a user