public function delete() {
        global $DB;

        if ($this->is_directory()) {
            // Directories can not be referenced, just delete the record.
            $DB->delete_records('files', array('id'=>$this->file_record->id));

        } else {
            $transaction = $DB->start_delegated_transaction();

            // If there are other files referring to this file, convert them to copies.
            if ($files = $this->fs->get_references_by_storedfile($this)) {
                foreach ($files as $file) {
                    $this->fs->import_external_file($file);
                }
            }

            // If this file is a reference (alias) to another file, unlink it first.
            if ($this->is_external_file()) {
                $this->delete_reference();
            }

            // Now delete the file record.
            $DB->delete_records('files', array('id'=>$this->file_record->id));

            $transaction->allow_commit();

            if (!$this->is_directory()) {
                // Callback for file deletion.
                if ($pluginsfunction = get_plugins_with_function('after_file_deleted')) {
                    foreach ($pluginsfunction as $plugintype => $plugins) {
                        foreach ($plugins as $pluginfunction) {
                            $pluginfunction($this->file_record);
                        }
                    }
                }
            }
        }

        // Move pool file to trash if content not needed any more.
        $this->filesystem->remove_file($this->file_record->contenthash);
        return true; // BC only
    }
public function delete() {
        global $DB;

        if ($this->is_directory()) {
            // Directories can not be referenced, just delete the record.
            $DB->delete_records('files', array('id'=>$this->file_record->id));

        } else {
            $transaction = $DB->start_delegated_transaction();

            // If there are other files referring to this file, convert them to copies.
            if ($files = $this->fs->get_references_by_storedfile($this)) {
                foreach ($files as $file) {
                    $this->fs->import_external_file($file);
                }
            }

            // If this file is a reference (alias) to another file, unlink it first.
            if ($this->is_external_file()) {
                $this->delete_reference();
            }

            // Now delete the file record.
            $DB->delete_records('files', array('id'=>$this->file_record->id));

            $transaction->allow_commit();

            if (!$this->is_directory()) {
                // Callback for file deletion.
                if ($pluginsfunction = get_plugins_with_function('after_file_deleted')) {
                    foreach ($pluginsfunction as $plugintype => $plugins) {
                        foreach ($plugins as $pluginfunction) {
                            $pluginfunction($this->file_record);
                        }
                    }
                }
            }
        }

        // Move pool file to trash if content not needed any more.
        $this->filesystem->remove_file($this->file_record->contenthash);
        return true; // BC only
    }
public function delete ( ) { global $ DB ; if ( $ this -> is_directory ( ) ) { // Directories can not be referenced, just delete the record. $ DB -> delete_records ( 'files' , array ( 'id' => $ this -> file_record -> id ) ) ; } else { $ transaction = $ DB -> start_delegated_transaction ( ) ; // If there are other files referring to this file, convert them to copies. if ( $ files = $ this -> fs -> get_references_by_storedfile ( $ this ) ) { foreach ( $ files as $ file ) { $ this -> fs -> import_external_file ( $ file ) ; } } // If this file is a reference (alias) to another file, unlink it first. if ( $ this -> is_external_file ( ) ) { $ this -> delete_reference ( ) ; } // Now delete the file record. $ DB -> delete_records ( 'files' , array ( 'id' => $ this -> file_record -> id ) ) ; $ transaction -> allow_commit ( ) ; if ( ! $ this -> is_directory ( ) ) { // Callback for file deletion. if ( $ pluginsfunction = get_plugins_with_function ( 'after_file_deleted' ) ) { foreach ( $ pluginsfunction as $ plugintype => $ plugins ) { foreach ( $ plugins as $ pluginfunction ) { $ pluginfunction ( $ this -> file_record ) ; } } } } } // Move pool file to trash if content not needed any more. $ this -> filesystem -> remove_file ( $ this -> file_record -> contenthash ) ; return true ; // BC only }
Delete file from files table.

The content of files stored in sha1 pool is reclaimed
later - the occupied disk space is reclaimed much later.

@return bool always true or exception if error occurred
Delete file from files table .