我希望从本地目录树中选择超过特定年龄的文件。以下代码有效但效率很低,因为目录太大,会导致超时。
for colName in df.columns:
if colName == "interesting_column":
df = df[ df[colName].notna() ]
else:
df = df[ df[colName].isna() ]
目前代码正在扫描每个文件和文件夹并返回匹配项,但我知道$dir = new RecursiveDirectoryIterator('store/', FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS);
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
// Allow recursion
if ($iterator->hasChildren()) {
return TRUE;
}
// Check for target folder name
if ($current->isFile() && strpos($current->getPath(), '/target-folder/')) {
return TRUE;
}
return FALSE;
});
$expiry = new DateTime();
$expiry = date_modify($expiry,"-28 days");
foreach (new RecursiveIteratorIterator($files) as $file) {
$cTime = new DateTime();
$cTime->setTimestamp($file->getCTime());
if ($cTime < $expiry) {
echo $file->getPath() . "/" . $file->getFileName() . " file Created " . $cTime->format('Y-m-d j:i:s') . "<br/>\n";
}
}
总是3级深处(存储/ [子文件夹] / [子文件夹] /目标文件夹/ [从这里递归搜索])所以我搜索前2个级别什么都没有。然而,并不总是有目标文件夹,我还需要在目标文件夹中递归搜索,因为我需要的文件将在其中。有没有办法忽略&#39;商店内的前两个级别?树?