我想删除主文件夹及其中的所有文件和子文件夹。我尝试了一个代码块,它使用
glob()
迭代所有文件,然后调用 rmdir()
删除主文件夹,并调用 unlink()
删除文件。但是,子文件夹不会被删除。如何修改此代码以同时删除子文件夹?
示例代码:
foreach (glob($dir . '/*') as $file) {
if (is_dir($file)) {
rmdir($file);
} else {
unlink($file);
}
}
rmdir($dir);
当然!这是代码的修改版本,它使用 CodeIgniter 的文件助手中的
delete_files()
来删除主文件夹、其文件和子文件夹:
// Load the File Helper
helper('file');
// Specify the directory path
$dir = 'path/to/main/folder';
// Delete all files and subfolders recursively
foreach (glob($dir . '/*') as $file) {
if (is_dir($file)) {
delete_files($file, true);
} else {
unlink($file);
}
}
// Delete the main folder
rmdir($dir);
在此代码中,为
delete_files()
循环中遇到的每个子文件夹调用 foreach
函数。它递归地删除每个子文件夹中的所有文件和子文件夹。
如果遇到文件而不是子文件夹,则像以前一样使用
unlink()
将其删除。
最后,删除所有文件和子文件夹后,使用
rmdir()
删除主文件夹。
请记住将
$dir
变量调整为要删除的主文件夹的实际路径。