重命名成功,但是重命名文件夹耗时过长,cpu占用过大占用了40%左右的内存(点击重命名按钮时,360加速球从45%增加到80%以上)

来源:2-5 rename()实现重命名文件夹

慕容7751831

2016-11-25 15:57

elseif($act == "renameFolder"){
    //echo $dirname;
    //完成文件夹重命名
    $str = <<<EOF
    <form action="index.php?act=doRenameFolder" method="post">
    请填写新文件夹名:<input type="text" name="newname" placeholder="重命名文件夹"/><br />
    <input type="hidden" name="path" value="$path"/>
    <input type="hidden" name="dirname" value="{$dirname}"/>
    <input type="submit" value="重命名文件夹"/>
    </form>
EOF;
    echo $str;
}elseif($act == "doRenameFolder"){
    $newname = $_REQUEST['newname'];
    $mes = renameFolder($dirname,$path."/".$newname);
    //alertMes($mes,$redirect);
}
---------------------------------------------
<tr>
<td><?php echo $i;?></td>
<td><?php echo $val;?></td>
<td><?php $src=filetype($p)=="file"?"file_ico.png":"folder_ico.png";?><img src="images/<?php echo $src;?>" alt="" title="folder"/></td>
<!-- <td><?php $sum = 0; echo transByte(dirSize($p));?></td> -->
<td><?php $src=is_readable($p) ? "correct.png":"error.png";?><img src="images/<?php echo $src;?>" alt=""/></td>
<td><?php $src=is_writable($p) ? "correct.png":"error.png";?><img src="images/<?php echo $src;?>" alt=""/></td>
<td><?php $src=is_executable($p) ? "correct.png":"error.png";?><img src="images/<?php echo $src;?>" alt=""/></td>
<td><?php echo date('Y-m-d H:i:s',filectime($p));?></td>
<td><?php echo date('Y-m-d H:i:s',filemtime($p));?></td>
<td><?php echo date('Y-m-d H:i:s',fileatime($p));?></td>
<td>
    <a href="index.php?path=<?php echo $p;?>"><img class="small" src="images/show.png" alt="" title="查看"/></a>
    <a href="index.php?act=renameFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>"><img class="small" src="images/rename.png" alt="" title="重命名"/></a>
    <a href="index.php?act=copyFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>"><img class="small" src="images/copy.png" alt="" title="复制"/></a>
    <a href="index.php?act=cutFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>"><img class="small" src="images/cut.png" alt="" title="剪切"/></a>
    <a href="#" onclick="delFile('<?php echo $p;?>')"><img class="small" src="images/delete.png" alt="" title="删除"/></a>
</td>
</tr>
---------------------------------------------
function renameFolder($oldname,$newname){
    //检测文件夹名称的合法性
    if(checkFilename(basename($newname))){
        //检测当前目录下是否存在同名文件夹
        if(!file_exists($newname)){
            if(rename($oldname,$newname)){
                $mes = "重命名成功";
            }else{
                $mes = "重命名失败";
            }
        }else{
            $mes = "存在同名文件夹";
        }
    }else{
        $mes = "非法文件夹名称";
    }
    return $mes;
}

即使是把

<!-- <td><?php $sum = 0; echo transByte(dirSize($p));?></td> -->

这条代码注释掉,也还是没有解决

写回答 关注

2回答

  • PdpdPdpd
    2017-07-02 20:57:45

    是的,我这里也是这种情况,重命名耗时很长,重命名的时候,电脑风扇也工作得很强劲,有哪位大神能告诉下什么原因?

  • 人艰不拆8
    2017-02-27 18:56:32

    说明你要换台新的电脑了。

WEB在线文件管理器

通过本课程文件目录函数库的学习,让你掌握文件、目录函数库的应用

36236 学习 · 344 问题

查看课程

相似问题