0

我有一个小项目我正在做,并且有一点问题。我有一个名为“actions”的目录,在这个文件夹中我有一个名为“remove.php”的 PHP 文件。

我正在努力做到这一点,所以当我从“actions”文件夹之外调用“remove.php”文件时,文件夹“actions”以及所有内容都会被删除。但似乎无法让它工作,因为我调用删除的文件位于“actions”目录中。

几乎我想调用一个文件来销毁它自己以及它的父目录。

这可能吗?我正在用 PHP BTW 编程。

提前感谢您的帮助。

这是我的“remove.php”文件代码:

<?php
// Get parent folder
$parent = basename(dirname($_SERVER['PHP_SELF']));

// Loop through all files and folders, and remove them
foreach(glob($parent . '/*') as $file)
{ 
  if(is_dir($file))
  {
    rmdir($file);
  } else
  {
    unlink($file);
  }
}

// Remove parent folder after all files have been deleted
rmdir($parent); 

// Inform that folder has been deleted
echo "actions folder deleted";
?>
4

2 回答 2

0

这里有几个问题。首先,您需要确保您的脚本具有删除文件和文件夹所需的足够访问权限。之后,我在您的代码中看到的问题是您尝试删除文件夹的方式。rmdir只能删除空文件夹,因此您需要先清空文件夹,然后再尝试删除它。它通常以递归方式完成。然而,文件删除自身并不是一个好主意。

于 2013-06-05T03:20:25.357 回答
0

在基于 Unix 的系统上:当然。使用rmdirunlink。Windows 系统倾向于锁定当前打开的文件,因此这可能不起作用(尽管我不能确定)。

当然,您的网络服务器需要对该文件夹及其父文件夹具有完全写入权限。

于 2013-06-04T22:40:47.500 回答