有人可以帮我吗?我使用以下脚本,它可以工作,但我想排除文件夹。如果有更好的脚本也很好,我尝试了很多,但结合 magento,我有点难以理解。因此,目标是将文件夹复制到另一个文件夹,包括符号链接和文件夹内的所有内容。此脚本的问题在于他在同一文件夹中复制,然后创建一个循环
$source = Mage::getBaseDir();
$dest = Mage::getStoreConfig('Setupstaging_options/product_page/stagingfolder');
mkdir($dest, 0755);
foreach (
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS),
RecursiveIteratorIterator::SELF_FIRST) as $item) {
if ($item->isDir()) {
mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
} else {
copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
}
}
如果您有
要跳过的文件夹的名称:
$exclude_dirs = array("onedir", "twodir"); // List of directory names to exclude
$source = Mage::getBaseDir();
$dest = Mage::getStoreConfig('Setupstaging_options/product_page/stagingfolder');
mkdir($dest, 0755);
foreach ($iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST) as $item) {
if ($item->isDir() && !in_array($item->getFilename(), $exclude_dirs)) { // If this Dir's name is not in $exclude_dirs
mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
}
else {
copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
}
}
我认为您可以使用此条件:
if ($item->isDir()) {
if($item->getSubPathName() =! "your path directory to exclude"){
mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
}
} else {
copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
}