You are here

public function FileSystem::getDestinationFilename in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/File/FileSystem.php \Drupal\Core\File\FileSystem::getDestinationFilename()
  2. 9 core/lib/Drupal/Core/File/FileSystem.php \Drupal\Core\File\FileSystem::getDestinationFilename()

File

core/lib/Drupal/Core/File/FileSystem.php, line 555

Class

FileSystem
Provides helpers to operate on files and stream wrappers.

Namespace

Drupal\Core\File

Code

public function getDestinationFilename($destination, $replace) {
  $basename = $this
    ->basename($destination);
  if (!Unicode::validateUtf8($basename)) {
    throw new FileException(sprintf("Invalid filename '%s'", $basename));
  }
  if (file_exists($destination)) {
    switch ($replace) {
      case FileSystemInterface::EXISTS_REPLACE:

        // Do nothing here, we want to overwrite the existing file.
        break;
      case FileSystemInterface::EXISTS_RENAME:
        $directory = $this
          ->dirname($destination);
        $destination = $this
          ->createFilename($basename, $directory);
        break;
      case FileSystemInterface::EXISTS_ERROR:

        // Error reporting handled by calling function.
        return FALSE;
    }
  }
  return $destination;
}