2

私の関数のクリーンアップはそのように見えます。

function cleanUp($exdirs, $exfiles){
$it = new RecursiveIteratorIterator(
  new RecursiveDirectoryIterator('.'), 
  RecursiveIteratorIterator::CHILD_FIRST
);
foreach($it as $entry) {
  if ($entry->isDir() && !in_array($entry->getBasename(), $exdirs)) {
    try {
      rmdir($entry->getPathname());
    }
    catch (Exception $ex) {
      // dir not empty
    }
  }
  elseif (!in_array($entry->getFileName(), $exfiles)) {
    unlink($entry->getPathname());
  }
}
}

そして、この関数をそのように呼び出す

$excludeDirsNames = array('cgi-bin');
$excludeFileNames = array('ws.zip');
cleanUp($excludeDirsNames , $excludeFileNames);

問題は、警告メッセージが表示されることです。can not unlink cgi-bin on line unlink($entry->getPathname());

私の機能の何が問題になっていますか?その問題を解決する方法は?

4

1 に答える 1

2

cgi-binこれはシンボリックリンクであり、通常のディレクトリではないと思います。それが「リンク解除」セクションに入っている理由です。エラーメッセージは、おそらく権限が原因です。

修正、「cgi-bin」を$excludeFileNames配列に移動します。

于 2011-10-08T08:21:47.940 に答える