将文件移动到回收站(PHP)

Tot*_*oto 7 php windows file

此问题与PHP5的Windows安装有关.

执行文件unlink()会使恢复变得困难.

相反,我想将文件移动到回收站(没有做exec()).

你有什么主意吗?

谢谢你的帮助.

Tig*_*ger 8

为什么你不创建一个文件夹,并将其命名为"回收站"..然后而不是做一个unlink()..只是将文件移动到这个"回收站"文件夹?

如果要移动文件,请使用rename() php函数.

然后你可以运行一个cron脚本来检查文件的时间,然后你可以删除文件,比如说,超过10天等.

我希望这有帮助.

  • 根据我的具体需求,env.仅限Windows.如果文件被移动到回收站,我可以更好地与其他二进制工具(WinSCP,资源管理器等)进行交互,因为它们被识别为回收文件.我的应用程序中的"回收站"不会为我提供所有这些功能,我将不得不编写操作系统中已有的功能.:) (2认同)

Ali*_*xel 8

这是唯一可行的解​​决方案,它可以在所有驱动器中移植.

function Recycle($filename)
{
    if (is_file($filename) === true)
    {
        $filename = realpath($filename);
        $recycle = glob(current(explode('\\', $filename, 2)) . '\\RECYCLER\\*', GLOB_ONLYDIR);

        if (is_array($recycle) === true)
        {
            return rename($filename, current($recycle) '\\' . basename($filename));
        }
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

删除的文件已正确移动到例如:

O:\RECYCLER\S-1-5-21-1715567821-1390067357-1417001333-1003
Run Code Online (Sandbox Code Playgroud)

应该可以从回收站恢复,但是我没有对其进行测试.

编辑:我刚刚更新此函数以处理具有相对路径的文件.