请教这个命令是什么? 是强制删除目录 目录变量为$dir
试了下 system('del '.$dir); 发现没有删掉任何东西 说明这个命令不行 不过测试这个命令可以删文件 目录删不掉换成system('rd '.$dir); 也不行
system('rm '.$dir"); 还不行
system('rmdir '.$dir"); 更不行没辙了 绝望了 来求教给位大牛给我一条win环境下php调用系统命令强制删除目录文件夹的语句或命令 跪谢 祝好人一生平安!
试了下 system('del '.$dir); 发现没有删掉任何东西 说明这个命令不行 不过测试这个命令可以删文件 目录删不掉换成system('rd '.$dir); 也不行
system('rm '.$dir"); 还不行
system('rmdir '.$dir"); 更不行没辙了 绝望了 来求教给位大牛给我一条win环境下php调用系统命令强制删除目录文件夹的语句或命令 跪谢 祝好人一生平安!
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names names 指定一个或数个文件或目录列表。通配符可被用来
删除多个文件。如果指定了一个目录,目录中的所
有文件都会被删除。 /P 删除每一个文件之前提示确认。
/F 强制删除只读文件。
/S 从所有子目录删除指定文件。
/Q 安静模式。删除全局通配符时,不要求确认。
/A 根据属性选择要删除的文件。
attributes R 只读文件 S 系统文件
H 隐藏文件 A 存档文件
- 表示“否”的前缀如果命令扩展名被启用,DEL 和 ERASE 会如下改变:/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。记得window下的 system 只能执行外部命令,你自己试一下
你可能需要这样 command del ...
也可能需要把 del ... 写到cmd文件中,间接的执行总之我不在web方式下执行服务器中的系统命令,太危险了
如果有这样的需求,只能用文件列表方式删除
deleteDir($dir)
{
if (rmdir($dir)==false && is_dir($dir)) {
if ($dp = opendir($dir)) {
while (($file=readdir($dp)) != false) {
if (is_dir($file) && $file!='.' && $file!='..') {
deleteDir($file);
} else {
unlink($file);
}
}
closedir($dp);
} else {
exit('Not permission');
}
}
}
2、系统调用法 function del_dir($dir)
{
if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
$str = "rmdir /s/q " . $dir;
} else {
$str = "rm -Rf " . $dir;
}
}
3、循环法 function deltree($pathdir)
{
echo $pathdir;//调试时用的
if(is_empty_dir($pathdir))//如果是空的
{
rmdir($pathdir);//直接删除
}
else
{//否则读这个目录,除了.和..外
$d=dir($pathdir);
while($a=$d->read())
{
if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);}
//如果是文件就直接删除
if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))
{//如果是目录
if(!is_empty_dir($pathdir.'/'.$a))//是否为空
{//如果不是,调用自身,不过是原来的路径+他下级的目录名
deltree($pathdir.'/'.$a);
}
if(is_empty_dir($pathdir.'/'.$a))
{//如果是空就直接删除
rmdir($pathdir.'/'.$a);
}
}
}
$d->close();
echo "必须先删除目录下的所有文件";//我调试时用的
}
}
function is_empty_dir($pathdir)
{
//判断目录是否为空
$d=opendir($pathdir);
$i=0;
while($a=readdir($d))
{
$i++;
}
closedir($d);
if($i>2){return false;}
else return true;
}
file_exists 判断文件是否存在。 http://it.php.net/manual/zh/function.file-exists.php
unlink 删除文件 http://www.php.net/manual/zh/function.unlink.php
rmdir 删除目录 http://www.php.net/manual/zh/function.rmdir.php function deleteDirectory($dir) {
if (!file_exists($dir)) return true;
if (!is_dir($dir)) return unlink($dir);
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
if (!deleteDirectory($dir.DIRECTORY_SEPARATOR.$item)) return false;
}
return rmdir($dir);
}
$files = glob(dirname(__FILE__)."/../files/*");// 全局files文件夹下的所有文件
foreach($files as $file) {
deleteDirectory($file); //循环分析删除
}
# recursively remove a directory
function rrmdir($dir) {
foreach(glob($dir . '/*') as $file) {
if(is_dir($file))
rrmdir($file);
else
unlink($file);
}
rmdir($dir);
}
?>