2013-05-29 57 views
-4

如何删除维护php内容的目录?使用php删除目录但不包含内容使用php

例如:

我有这个目录中的文件:

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

而且PHP文件上:

+ /home/user/files.php 

如何删除文件目录,但继续/home/user/ directory MP3文件??

+3

向外移动的一切,然后删除该文件夹。 –

+0

但是,如果我有更多的子目录?我需要这个移动主目录和子目录上的所有文件。 –

+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/ 
+0

几乎是完美的,我会尽量适应我的需要。谢谢。 –

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); 
    } 
} 
+0

+1,我不熟悉nix,但他的服务器可能正在运行:) –

+0

我知道如何在Linux上做到这一点,但我试图让我的代码远离直接的ssh命令。 –