我的功能默认情况下会在7天内删除。如果我在30天内设置了文件夹过期,则默认情况下将在7天内删除该文件夹中的文件。 所以我想在每个文件里面设置Timeup_limit,但我不知道如何使用递归来更新每个文件。
public static function setTimeuplimitFile( $itemSource, $dateLimit) {
$query = \OC_DB::prepare('UPDATE `oc_filecache` SET `timeup_limit` = ? WHERE `fileid` = ?');
$query->bindValue(1, $dateLimit);
$query->bindValue(2, $itemSource);
$query->execute();
return true;
}
文件夹#Updated的功能
public static function setTimeuplimitFolder($itemSource, $dateLimit) {
$query = \OC_DB::prepare('UPDATE `oc_filecache` SET `timeup_limit` = ? WHERE `fileid` = ?');
$query->bindValue(1, $dateLimit);
$query->bindValue(2, $itemSource);
$query->execute();
$query2 = \OC_DB::prepare('SELECT mimetype,fileid FROM`oc_filecache` WHERE `parent` = ?');
$r = $query2->execute(array($itemSource));
if ($r) {
while($row = $r->fetchRow()){
if($row["mimetype"] == 2){ //mimetype = 2 is folder
OCP\Share::setTimeuplimitFolder($row["fileid"],$dateLimit);
}
else{ //file
$query = \OC_DB::prepare('UPDATE `oc_filecache` SET `timeup_limit` = ? WHERE `fileid` = ?');
$query->bindValue(1, $dateLimit);
$fileid = $row["fileid"];
$query->bindValue(2, $fileid);
$query->execute();
}
}
}
return true;
}
但它没有用。