我遇到Symfony Filesystem类的麻烦。我试图通过删除方法删除文件夹。
这是我的方法。
public function createArchive($source, $destination) {
$zipper = new Zipper();
$zipper->make('backup/'.$this->getBackupName().'.zip')->add('backup/'.$this->getBackupName().'/');
$fileSystem = new Filesystem();
$fileSystem->remove('backup/'.$this->getBackupName());
}
Zipper创建zip存档文件夹i放在第二个参数中。所以例如我有一个文件夹backup / 2016_03_24_full它将在backup / 2016_03_24_full.zip中创建zip存档。
然后我尝试删除backup / 2016_03_24_full文件夹,因此只有zip存档。但Filesystem删除方法也删除了我的zip。它应该只删除我放入参数的文件夹,但是出了点问题......
可能是什么问题?
答案 0 :(得分:1)
由于您将文件夹传递给remove方法,因此它首先尝试通过调用rmdir()
来删除该目录。此函数需要该文件夹为空。由于您的目录不是空的,因此可以使用依赖于PHP的FilesystemIterator的回退。
我的猜测是,给出没有斜杠(/)的文件夹的名称是从文件夹的外部和内部挑选文件并删除它们。
您可以看到具体的算法here。