使用 PHP 删除 __MACOSX 文件夹?
有人有过用 PHP 删除 __MACOSX 文件夹的经验吗?
该文件夹是我解压存档后生成的,但我似乎无法删除它。
is_dir 函数在文件上返回 false,使递归删除脚本失败(因为存档内部是“临时”文件),因此目录不为空。
我在 PHP5 中使用内置的 ZipArchive 类(extractTo 方法)。
我使用的 rmdir 脚本是我在 php.net 上找到的:
<?php
// ensure $dir ends with a slash
function delTree($dir) {
$files = glob( $dir . '*', GLOB_MARK );
foreach( $files as $file ){
if( substr( $file, -1 ) == '/' )
delTree( $file );
else
unlink( $file );
}
rmdir( $dir );
}
?>
Has anyone had any experience with deleting the __MACOSX
folder with PHP?
The folder was generated after I unzipped an archive, but I can't seem to do delete it.
The is_dir
function returns false on the file, making the recursive delete scripts fail (because inside the archive is the 'temp' files) so the directory isn't empty.
I'm using the built-in ZipArchive class (extractTo method) in PHP5.
The rmdir script I'm using is one I found on php.net:
<?php
// ensure $dir ends with a slash
function delTree($dir) {
$files = glob( $dir . '*', GLOB_MARK );
foreach( $files as $file ){
if( substr( $file, -1 ) == '/' )
delTree( $file );
else
unlink( $file );
}
rmdir( $dir );
}
?>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我从 http://www.php.net/rmdir 找到了该函数的改进版本,该版本需要PHP5。
DIRECTORY_SEPARATOR
而不是/
。 PHP 将DIRECTORY_SEPARATOR
定义为运行操作系统的正确字符(“/”或“\”)。true
或false
。I found an improved version of the function from http://www.php.net/rmdir that requires PHP5.
DIRECTORY_SEPARATOR
instead of/
. PHP definesDIRECTORY_SEPARATOR
as the proper character for the running OS ('/' or '\').true
orfalse
on completion.您使用的是哪个操作系统和版本?
您需要更正目录和文件的路径。
Which OS and version are you using?
You need to correct the paths to the directory and files.