使用php删除目录但不是内容

时间:2013-05-29 17:01:30

标签: php

如何删除在php上维护内容的目录?

例如:

我的目录中有文件:

+ /home/user/files/arq1.mp3
+ /home/user/files/arq2.mp3
+ /home/user/files/arq3.mp3

PHP文件已打开:

+ /home/user/files.php

如何删除文件目录但保留mp3文件/home/user/ directory ??

2 个答案:

答案 0 :(得分:1)

PHP方法:

foreach (glob("/home/user/files/*") as $file) {
    copy($file,"/home/user/".basename($file));
}
rmdir("/home/user/files/");

终端方法:

mv /home/user/files/* /home/user/*
rmdir /home/user/files/

答案 1 :(得分:1)

* nix方法:)

find . -type f | awk '{print "cp " $1 " ."}' | sh

如果您不确定它的作用,请首先尝试使用底部,这样只会打印生成的动作。将它们用于“sh”会执行它们。

find . -type f | awk '{print "cp " $1 " ."}'

好:) PHP方法:

function flatten_structure( $path = './tree', $target_path = './flat' ) {
  $handle = opendir( $path );
  while( false !== ( $item = readdir( $handle ) ) ) {
    if ( is_file( $path . '/' . $item ) ) copy( $path . '/' . $item, $target_path );
    if ( is_dir( $path . '/' . $item ) ) flatten_structure( $path . '/' . $item, $target_path );
  }
}