protected function FTPExtension::removeDirectoryJailed in Drupal 8
Same name and namespace in other branches
- 9 core/lib/Drupal/Core/FileTransfer/FTPExtension.php \Drupal\Core\FileTransfer\FTPExtension::removeDirectoryJailed()
- 10 core/lib/Drupal/Core/FileTransfer/FTPExtension.php \Drupal\Core\FileTransfer\FTPExtension::removeDirectoryJailed()
Removes a directory.
Parameters
string $directory: The directory to be removed.
Overrides FileTransfer::removeDirectoryJailed
File
- core/
lib/ Drupal/ Core/ FileTransfer/ FTPExtension.php, line 45
Class
- FTPExtension
- Defines a file transfer class using the PHP FTP extension.
Namespace
Drupal\Core\FileTransferCode
protected function removeDirectoryJailed($directory) {
$pwd = ftp_pwd($this->connection);
if (!ftp_chdir($this->connection, $directory)) {
throw new FileTransferException("Unable to change the current directory to @directory", NULL, [
'@directory' => $directory,
]);
}
$list = @ftp_nlist($this->connection, '.');
if (!$list) {
$list = [];
}
foreach ($list as $item) {
if ($item == '.' || $item == '..') {
continue;
}
if (@ftp_chdir($this->connection, $item)) {
ftp_cdup($this->connection);
$this
->removeDirectory(ftp_pwd($this->connection) . '/' . $item);
}
else {
$this
->removeFile(ftp_pwd($this->connection) . '/' . $item);
}
}
ftp_chdir($this->connection, $pwd);
if (!ftp_rmdir($this->connection, $directory)) {
throw new FileTransferException("Unable to remove the directory @directory", NULL, [
'@directory' => $directory,
]);
}
}