PHP如何删除一个文件夹下面的所有的文件?

happyfish
  • 2.4k

求教。但是不能将原来的文件夹删除,只能删除文件

回复
阅读 6k
5 个回答
✓ 已被采纳

上面提供的几个都是linux命令行吧,我提供一个纯PHP的代码
一句话删除目录下所有文件

array_map('unlink', glob('*'));

来自 乱炖 - 研究web
http://levi.cg.am/archives/3524

V2Ray
  • 125

/**
* 删除目录(包括下面的文件)
* @return void
*/
function del_directory($directory,$subdir=true){
if (is_dir($directory) == false){
exit("The Directory Is Not Exist!");
}
$handle = opendir($directory);
while (($file = readdir($handle)) !== false){
if ($file != "." && $file != ".."){
is_dir("$directory/$file")?
del_directory("$directory/$file"):
unlink("$directory/$file");
}
}
if (readdir($handle) == false){
closedir($handle);
rmdir($directory);
}
}

/**
* 删除目录下面的所有文件,但不删除目录
* @return void
*/
function del_directory_file($directory){
if (is_dir($directory) == false){
exit("The Directory Is Not Exist!");
}
$handle = opendir($directory);
while (($file = readdir($handle)) !== false){
if ($file != "." && $file != ".." && is_file("$directory/$file")){
unlink("$directory/$file");
}
}
closedir($handle);
}

可不可以删除了那个文件夹然后再建立一个同名的文件夹(反正你都是删除所有文件了,当然你得注意权限是否够)?如果不行的话看看下面这篇博文:
http://cgxcn.blog.163.com/blog/static/13231242200931792027965/

多利用搜索引擎啊,这些问题都是很容易在互联网上找到的,没必要来这里问了。

holyghost
  • 675
<?php system('find $DIR -type f -delete'); ?>

哼,还被踩了一下。。。
这种事本来就不应该交给PHP去做啊。。。为什么用命令行就要被踩!不嗨森

baley
  • 1
新手上路,请多包涵

用这个 FilesystemIterator遍历,然后unlink文件 如果是目录递归处理

宣传栏