FileSystem.php

Same filename in this branch
  1. 9 core/lib/Drupal/Core/File/FileSystem.php
Same filename and directory in other branches
  1. 8.9.x core/lib/Drupal/Core/File/FileSystem.php
  2. 8.9.x core/lib/Drupal/Component/FileSystem/FileSystem.php
  3. 10 core/lib/Drupal/Core/File/FileSystem.php
  4. 10 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;


/**
 * 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 (substr(PHP_OS, 0, 3) == '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.