我想用php函数扫描一个目录,以查明是否存在与数据库中特定文件名对应的文件。当文件不作为数据库条目存在(从数据库中删除)时,也应从目录中删除相应的文件。我的问题是:scandir()不仅返回文件。基本上我需要can函数才能在foreach中使用它的返回值。
答案 0 :(得分:0)
当然,您也可以使用function recursiveDirectoryIterator($path) {
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $file) {
if (!$file->isDir()) {
yield $file->getFilename(); // You can add $file->getFileExtension() too
}
}
}
。我建议使用RecursiveIteratorIterator。 RecursiveDirectoryIterator
示例代码:
string s = "sdfsadf asdf dsa fds";
int i = s.LastIndexOf(' ');
if (i > 0)
{
var result = s.Substring(0, i);
//...
//res.Dump(); // Linqpad
}
通常情况下,我只是将其留作评论,但我觉得大多数人不经常使用RecursiveIterator和DirecotryIterator,所以一个例子是有序的。