From 0ca8f9b2d759777fdf367b61d1c6fca1a331058d Mon Sep 17 00:00:00 2001
From: Angie Byron <webchick@24967.no-reply.drupal.org>
Date: Fri, 9 Oct 2009 18:38:52 +0000
Subject: [PATCH] #573292 by eMPee584: Allow enable file_unmanaged_delete() to
 handle stream wrapper URIs.

---
 includes/file.inc | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/includes/file.inc b/includes/file.inc
index 7729544f1724..0ff21f25bb16 100644
--- a/includes/file.inc
+++ b/includes/file.inc
@@ -948,7 +948,7 @@ function file_delete(stdClass $file, $force = FALSE) {
  * entry recorded in the files table.
  *
  * @param $path
- *   A string containing a filepath or URI.
+ *   A string containing a file path or (streamwrapper) URI.
  * @return
  *   TRUE for success or path does not exist, or FALSE in the event of an
  *   error.
@@ -957,6 +957,8 @@ function file_delete(stdClass $file, $force = FALSE) {
  * @see file_unmanaged_delete_recursive()
  */
 function file_unmanaged_delete($path) {
+  // Resolve streamwrapper URI to local path.
+  $path = drupal_realpath($path);
   if (is_dir($path)) {
     watchdog('file', '%path is a directory and cannot be removed using file_unmanaged_delete().', array('%path' => $path), WATCHDOG_ERROR);
     return FALSE;
@@ -989,14 +991,16 @@ function file_unmanaged_delete($path) {
  * Note that this only deletes visible files with write permission.
  *
  * @param $path
- *   A string containing a URI, filepath. or directory path.
+ *   A string containing eiher an URI or a file or directory path.
  * @return
- *   TRUE for success or path does not exist, or FALSE in the event of an
+ *   TRUE for success or if path does not exist, FALSE in the event of an
  *   error.
  *
  * @see file_unmanaged_delete()
  */
 function file_unmanaged_delete_recursive($path) {
+  // Resolve streamwrapper URI to local path.
+  $path = drupal_realpath($path);
   if (is_dir($path)) {
     $dir = dir($path);
     while (($entry = $dir->read()) !== FALSE) {
-- 
GitLab