Some information on managed and unmanaged files in Drupal
If a file is on a certain folder of the webserver within the Drupal folders it does not mean that Drupal knows it!
When Drupal “store” the presence of a certain file (i.e. public://myfile.pdf) it became a managed file.
You can add a file to managed with file_save_data function.
Luckly or unfortunaly a function that manage an entire directory of files, maybe in a recursive way, is not present in Drupal core.
How to import a folder of files to Drupal?
I create a script to this in a clean and easy way.
$destination = 'public://path-to-folder'; $regex = '/.*\.jpg$/'; // This will identify jpg files $paths = file_scan_directory($destination,$regex); foreach($paths as $path => $data){ $realPath = drupal_realpath($path); $handle = fopen($realPath, 'r'); $file = file_save_data($handle, $path, FILE_EXISTS_REPLACE); fclose($handle); if(!$file){ dpm('ERROR'); } else{ dpm("YEAH!!"); dpm($file); } }
Note that dpm function is provided with a contrib module: Devel.
Hint
I have used this functionality to put lots of images in the media library (made with Media module) and make them available for redactors.