在我的FTP上,我想复制一个包含文件和子目录的目录。由于我不知道子目录的名称,也不知道它们有多少,我需要动态的东西。
此脚本会将所有文件从一个目录复制到另一个目录。
public function copyfolder($source, $destination) {
//Open the specified directory
$directory = opendir($source);
//Create the copy folder location
mkdir($destination);
//Scan through the folder one file at a time
while(($file = readdir($directory)) != false) {
//Copy each individual file
copy($source.'/' .$file, $destination.'/'.$file);
}
}
当目录包含子目录时,问题就开始了。所以上面的代码会将它们视为文件。然后我希望脚本足够聪明,以便了解它们是子类别,并尝试为它们运行相同的循环,因为它通过主目录的每个文件。
我真的不知道如何做到这一点。任何帮助将不胜感激!
答案 0 :(得分:0)
请注意,此解决方案并不是很好,因为它不可移植。
您可以使用系统命令行来复制文件,它会比php循环更快。
Linux:cp -R
Windows:xcopy
Ps:如果你真的想使用php,你必须做一个递归函数,但如果需要很长时间来复制文件,你的脚本将会超时。
答案 1 :(得分:0)
在你的PHP代码中,你可以将代码作为,
public function()
{
...
$sourcedir = ...;
$targetdir = ...;
`cp -r $sourcedir $targetdir`;
}