Esta es la única solución que funciona y es portátil en todas las unidades.
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;
}
archivos borrados se mueven correctamente a por ejemplo:
O:\RECYCLER\S-1-5-21-1715567821-1390067357-1417001333-1003
restaurar desde la papelera de reciclaje debería ser posible, sin embargo yo no lo he probado.
EDIT: Acabo de actualizar esta función para trabajar con archivos que tienen rutas de acceso relativas.
Solo una aclaración para simplificar la solución dada. Both * is_file * y * is_array * devuelven un valor booleano (es decir, verdadero o falso). Compararlo con === a verdadero o falso es redundante. Aunque he visto cosas peores, como * $ var = is_array ($ arr)? true: false; * pero aún ... –