function file_prepare_directory in Zircon Profile 8.0
Same name and namespace in other branches
- 8 core/includes/file.inc \file_prepare_directory()
Checks that the directory exists and is writable.
Directories need to have execute permissions to be considered a directory by FTP servers, etc.
Parameters
$directory: A string reference containing the name of a directory path or URI. A trailing slash will be trimmed from a path.
$options: A bitmask to indicate if the directory should be created if it does not exist (FILE_CREATE_DIRECTORY) or made writable if it is read-only (FILE_MODIFY_PERMISSIONS).
Return value
TRUE if the directory exists (or was created) and is writable. FALSE otherwise.
Related topics
34 calls to file_prepare_directory()
- AssetDumper::dump in core/
lib/ Drupal/ Core/ Asset/ AssetDumper.php - The file name for the CSS or JS cache file is generated from the hash of the aggregated contents of the files in $data. This forces proxies and browsers to download new CSS when the CSS changes.
- BrowserTestBase::installDrupal in core/
modules/ simpletest/ src/ BrowserTestBase.php - Installs Drupal into the Simpletest site.
- BrowserTestBase::prepareEnvironment in core/
modules/ simpletest/ src/ BrowserTestBase.php - Prepares the current environment for running the test.
- color_scheme_form_submit in core/
modules/ color/ color.module - Form submission handler for color_scheme_form().
- DirectoryTest::testFileCheckDirectoryHandling in core/
modules/ system/ src/ Tests/ File/ DirectoryTest.php - Test directory handling functions.
File
- core/
includes/ file.inc, line 301 - API for handling file uploads and server file management.
Code
function file_prepare_directory(&$directory, $options = FILE_MODIFY_PERMISSIONS) {
if (!file_stream_wrapper_valid_scheme(\Drupal::service('file_system')
->uriScheme($directory))) {
// Only trim if we're not dealing with a stream.
$directory = rtrim($directory, '/\\');
}
// Check if directory exists.
if (!is_dir($directory)) {
// Let mkdir() recursively create directories and use the default directory
// permissions.
if ($options & FILE_CREATE_DIRECTORY) {
return @drupal_mkdir($directory, NULL, TRUE);
}
return FALSE;
}
// The directory exists, so check to see if it is writable.
$writable = is_writable($directory);
if (!$writable && $options & FILE_MODIFY_PERMISSIONS) {
return drupal_chmod($directory);
}
return $writable;
}