FileSystem.php

Same filename in this branch
  1. 10 core/lib/Drupal/Core/File/FileSystem.php
Same filename and directory in other branches
  1. 9 core/lib/Drupal/Core/File/FileSystem.php
  2. 9 core/lib/Drupal/Component/FileSystem/FileSystem.php
  3. 8.9.x core/lib/Drupal/Core/File/FileSystem.php
  4. 8.9.x core/lib/Drupal/Component/FileSystem/FileSystem.php
  5. 11.x core/lib/Drupal/Core/File/FileSystem.php
  6. 11.x core/lib/Drupal/Component/FileSystem/FileSystem.php

Namespace

Drupal\Component\FileSystem

File

core/lib/Drupal/Component/FileSystem/FileSystem.php

View source
<?php

namespace Drupal\Component\FileSystem;

// cspell:ignore winnt

/**
 * Provides file system functions.
 */
class FileSystem {
  
  /**
   * Discovers a writable system-appropriate temporary directory.
   *
   * @return string|false
   *   A string containing the path to the temporary directory, or FALSE if no
   *   suitable temporary directory can be found.
   */
  public static function getOsTemporaryDirectory() {
    $directories = [];
    // Has PHP been set with an upload_tmp_dir?
    if (ini_get('upload_tmp_dir')) {
      $directories[] = ini_get('upload_tmp_dir');
    }
    // Operating system specific dirs.
    if (str_starts_with(PHP_OS, 'WIN')) {
      $directories[] = 'c:\\windows\\temp';
      $directories[] = 'c:\\winnt\\temp';
    }
    else {
      $directories[] = '/tmp';
    }
    // PHP may be able to find an alternative tmp directory.
    $directories[] = sys_get_temp_dir();
    foreach ($directories as $directory) {
      if (is_dir($directory) && is_writable($directory)) {
        // Both sys_get_temp_dir() and ini_get('upload_tmp_dir') can return paths
        // with a trailing directory separator.
        return rtrim($directory, DIRECTORY_SEPARATOR);
      }
    }
    return FALSE;
  }

}

Classes

Title Deprecated Summary
FileSystem Provides file system functions.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.