この質問は、PHP5のWindowsインストールに関連しています。ごみ箱にファイルを移動する(PHP)
ファイルunlink()
を実行すると、回復が困難になります。
代わりに、ファイルをごみ箱に移動したい(exec()
を実行せずに)。
ご存知ですか?
ありがとうございました。
この質問は、PHP5のWindowsインストールに関連しています。ごみ箱にファイルを移動する(PHP)
ファイルunlink()
を実行すると、回復が困難になります。
代わりに、ファイルをごみ箱に移動したい(exec()
を実行せずに)。
ご存知ですか?
ありがとうございました。
これはすべてのドライブで動作し、移植可能な唯一のソリューションです。 、
O:\RECYCLER\S-1-5-21-1715567821-1390067357-1417001333-1003
が可能でなければなりませんごみ箱から復元しかし、私はそれをテストしていませんでした:
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;
}
削除されたファイルが正しくたとえばに移動されます。
EDIT:この機能は、相対パスのあるファイルで動作するように更新されました。
こんにちは、機能のおかげで。残念ながら、それは私のために働いていません(ファイルが消えますが、私はどこにそれがシステムフォルダ[ドライブ]にありません:\ RECYCLER \\)):(OSがファイルを "ごみ箱"に移動すると、システムファイルにデータが書き込まれています。DOSコマンドでexec()を実行する必要があります。 – Toto
私もXP上にあり、この機能は私のためにうまくいきます。ファイルはごみ箱に表示され、私も見ることができます。たとえば、Cにあるファイルを削除する場合は、「隠しフォルダを表示」を有効にしてから、C:\ RECYCLER \ __ SOMETHING __ \を参照してください。ファイルがそこにある必要があります。 。ごみ箱にも表示されます。 –
相対パスで作業が必要でした。それでも動作しないか教えてください。 –
あなたはただ1つのフォルダを作成し、それを "ごみ箱"と呼んでいないのですが、unlink()を実行する代わりに、この "ごみ箱"フォルダにファイルを移動しますか?
ファイルを移動する場合は、rename() php関数を使用してください。
その後、あなたは私はこれが役に立てば幸い等のより古い10日、たとえば、
のファイルの時間をチェックしてから、ファイルを削除することができcronスクリプトを実行することができます。
確かに、それは同じ原則です。ごみ箱は、ファイルを実行できないマップであるだけです。 「削除済み」ファイルは依然として存在し、依然としてごみ箱内の同じスペースを占有します。 – KdgDev
しかし、リサイクルビンからの復元はありません。 –
私の特定のニーズでは、env。 Windowsのみです。ファイルがごみ箱に移動された場合、リサイクルファイルとして認識されるため、他のバイナリツール(WinSCP、エクスプローラなど)とのやりとりができます。私のアプリケーションの "ごみ箱"は私にこれらの機能をすべて提供するものではなく、すでにOSに組み込まれている機能をコード化する必要があります。 :) – Toto
これは私のために、using MaDdoGs CmdUtils、Win7 x64、php 5.4.24の下で動作します。また、大きなファイル、奇妙なファイル名、...
function recycle($filename)
{
if (!is_file($filename))
return false;
system(__DIR__.'/third-party/Recycle.exe -f "'.$filename.'"', $r);
return $r;
}
与えられた解決策を簡略化するためのちょっとした説明。 * is_file *と* is_array *の両方がブール値を返します(真または偽)。 ===と真と偽を比較することは冗長です。 * $ var = is_array($ arr)のように、私が悪化しているのを見たことがありますか?真:偽、*でもまだ... –