Existe-t-il un moyen de répertorier tous les fichiers inutilisés qui résident dans le système de fichiers public et dans un répertoire de thèmes et de les répertorier, ou peut-être même de les supprimer automatiquement?
Je veux dire des fichiers qui ne sont actuellement liés à aucune feuille de style CSS ou à partir d'un nœud.
Réponses:
Vous pouvez rechercher des fichiers orphelins en exécutant la requête MySQL suivante:
Cela renvoie tous les fichiers qui n'ont aucun nœud associé. Je ne sais pas s'il est sûr de supprimer les lignes et les fichiers retournés, cela dépend probablement aussi de la configuration de votre module. Utilisez uniquement à vos risques et périls!
Source: http://drupal.org/node/733258#comment-5582764
la source
Pour ceux qui viendront à ce poste trois ans plus tard, il y a un petit module que vous pouvez utiliser pour le faire appelé Fancy File Delete .
Au moment de ce post, il est en version bêta, alors utilisez-le à vos risques et périls. Comme toujours, le nettoyage de tout objet orphelin via des requêtes DB peut être sommaire et son succès dépend fortement de la configuration particulière de votre module.
la source
Quelque chose qui peut aider à identifier "les fichiers qui ne sont plus attachés aux nœuds ou aux fichiers et répertoires qui ne sont pas dans la table gérée par les fichiers " (comme dans la question en double sur " Comment faire pour supprimer les fichiers inutilisés? "), Est d'utiliser le Module Vérificateur de fichiers . Quelques détails à ce sujet, depuis sa page de projet:
Donc, ce que vous pourriez faire, c'est comme ça:
Remarque : même si cette question concerne D7, il en existe une version (alfa) également pour D8.
la source
il y a un module qui supprime les fichiers indésirables fichier de fantaisie supprimer .
la source
Vous pouvez supprimer le fichier inutilisé en
Supprimer manuellement de la table file_managed , par une requête comme
$this->database ->delete('file_managed') ->condition('fid', $fid, '=') ->execute();
La définition de l'état d'un fichier 0 , pour marquer est comme un fichier temporaire, donc le cron le supprimera après un certain temps.
$file = File::load ($fid); $file->setTemporary();
la source
Le module de suppression de fichiers fantaisie ne fonctionnait pas du tout pour moi. Voici une alternative plus manuelle.
Pour supprimer des fichiers d'un dossier qui ne figurent pas dans la table des fichiers gérés, vous pouvez:
1) Créez une liste de tous les fichiers gérés:
2) Supprimez tous les fichiers d'un répertoire qui ne figurent pas dans cette liste. Pour ce faire, j'ai utilisé un petit script bash:
Changez simplement la
IMG_FOLDER
variable en chemin du dossier dans lequel vous voulez supprimer les fichiers (et mettez à jour le chemin vers votre fichier exclut)la source