Geri Dönüşüm Kutusu (PHP) Bir dosyayı taşıma

3 Cevap php

Bu soru PHP5 yüklemek Windows ilgilidir.

Bir dosyayı yapıyor unlink() kurtarma için zorlaştırmaktadır.

Bunun yerine (bir exec() yapmadan) Geri Dönüşüm Kutusu'na dosya taşımak istiyorum.

Eğer herhangi bir fikrin var mı?

Yardımlarınız için teşekkürler.

3 Cevap

Bu çalışır ve tüm sürücüler taşınabilir bulunuyor tek çözümdür.

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;
}

Silinen dosyaları düzgün örneğin taşınır:

O:\RECYCLER\S-1-5-21-1715567821-1390067357-1417001333-1003

Geri Dönüşüm Kutusu'ndan geri yüklemek mümkün olmalı, ancak bunu test ettik.

EDIT: Ben sadece göreli yollara sahip dosyaları ile çalışmak için bu fonksiyonu güncellendi.

neden sonra yerine unlink yapıyor () .. sadece bu "Geri Dönüşüm Kutusu" klasörüne dosyaları taşımak .. sadece tek bir klasör oluşturun ve "Geri Dönüşüm Kutusu" adını Yüklü?

Bir dosyayı taşımak istiyorsanız, rename() php işlevini kullanın.

Sonra daha sonra dosyaların süresini denetleyen bir cron komut dosyasını çalıştırmak ve sonra vb 10 günden daha eski dosyaları, diyelim ki, silebilir

Bu yardımcı olur umarım.

Bu Win7 x64, php 5.4.24 altında, using MaDdoGs CmdUtils benim için çalışıyor. Ayrıca büyük dosyaları tek dosya adları, ...

function recycle($filename)
{
    if ( !is_file($filename) )
        return false;
    system( __DIR__.'/third-party/Recycle.exe -f "'.$filename.'"', $r );
    return $r;
}