Windows 10 supprime de nombreux petits fichiers très lentement. Peut-on faire quelque chose pour accélérer le processus ?

Je travaille avec des dizaines de milliers de fichiers JPEG de 20 Ko par lots qui totalisent des gigaoctets. Lorsque j’essaie de supprimer un ancien lot, Windows 10 a un taux de suppression très faible qui tombe parfois même à zéro sans raison apparente :

Est-ce simplement un fait inhérent au matériel que j’utilise, ou existe-t-il des astuces que je pourrais essayer pour accélérer cette suppression ?

D’après l’image, il semble que vous supprimez les fichiers via l’Explorateur, qui est la méthode la plus lente possible.

Ce que vous pouvez faire pour améliorer la situation :

Supprimez les fichiers en utilisant Maj+Suppr afin que les fichiers supprimés ne soient pas déplacés vers la Corbeille (aucune récupération possible)

Lancez la suppression depuis une invite de commandes en utilisant une commande similaire à (utilisez del /? pour voir tous les paramètres) :

  del /f /q *.*           (del in current folder, add `/s` to traverse sub-folders)
  del /f /q /s folder

Bonjour,

Ce problème de suppression lente de nombreux petits fichiers est extrêmement courant et bien documenté. Avec des dizaines de milliers de fichiers JPEG de 20 Ko, vous touchez à une limitation fondamentale du système de fichiers NTFS couplée au comportement de l’Explorateur Windows. Voici l’analyse complète et les solutions pour accélérer drastiquement vos suppressions.

Pourquoi Windows 10 est lent à supprimer de nombreux petits fichiers

1. Le problème de la Corbeille

Par défaut, l’Explorateur Windows déplace les fichiers dans la Corbeille avant de les supprimer. Pour des dizaines de milliers de fichiers, cela implique :

  • Calcul de la taille totale (opération séquentielle sur chaque fichier)
  • Déplacement métadonnées par métadonnées vers $Recycle.Bin
  • Mise à jour du Master File Table (MFT) pour chaque entrée

Cette opération est O(n) — linéaire par rapport au nombre de fichiers — et génère énormément d’opérations d’I/O aléatoires, ce qui est très pénalisant même sur SSD.

2. La fragmentation du MFT sur disque dur (HDD)

Si vous travaillez sur un disque dur traditionnel (HDD), les têtes de lecture doivent se déplacer physiquement pour mettre à jour chaque entrée MFT. Avec 50 000 fichiers, cela représente des milliers de déplacements mécaniques.

3. Les notifications de changement du système de fichiers

Windows 10 émet des notifications USN Journal pour chaque modification du système de fichiers. Ces notifications sont consommées par l’Indexeur de recherche Windows, le service de synchronisation OneDrive, les antivirus, et d’autres services. Chaque suppression déclenche une cascade d’opérations secondaires.

4. L’antivirus en temps réel

Les solutions antivirus comme Windows Defender (ou tout autre antivirus tiers) interceptent chaque opération sur un fichier, y compris la suppression. Pour 50 000 fichiers JPEG, cela multiplie le temps par un facteur significatif.

Solutions classées par ordre d’efficacité

Solution 1 : Utiliser la commande del avec suppression directe (bypass Corbeille)

La méthode la plus rapide pour supprimer de nombreux petits fichiers est d’utiliser l’invite de commandes en contournant la Corbeille :

REM Supprimer tous les .jpg dans un dossier (sans confirmation, sans corbeille)
del /f /q "C:\chemin\vers\dossier\*.jpg"

REM Supprimer récursivement dans tous les sous-dossiers
del /f /q /s "C:\chemin\vers\dossier\*.jpg"

REM Supprimer un dossier entier et tout son contenu
rmdir /s /q "C:\chemin\vers\dossier"

Le flag /f force la suppression des fichiers en lecture seule, /q désactive les confirmations. rmdir /s /q est généralement la méthode la plus rapide pour supprimer un dossier complet.

Solution 2 : PowerShell avec suppression parallèle

PowerShell permet d’exploiter plusieurs threads pour les suppressions :

# Suppression rapide sans corbeille
Remove-Item -Path "C:\chemin\vers\dossier\*" -Recurse -Force

# Suppression parallèle (PowerShell 7+ recommandé)
Get-ChildItem -Path "C:\chemin\vers\dossier" -Filter "*.jpg" -Recurse |
    ForEach-Object -Parallel { Remove-Item $_.FullName -Force } -ThrottleLimit 8

# Pour un dossier entier : la méthode la plus rapide
[System.IO.Directory]::Delete("C:\chemin\vers\dossier", $true)

La dernière méthode utilisant [System.IO.Directory]::Delete appelle directement l’API .NET et est souvent 2 à 5 fois plus rapide que Remove-Item.

Solution 3 : Désactiver temporairement l’indexation et l’antivirus

# Désactiver Windows Search (indexeur) pendant la suppression
Stop-Service -Name "WSearch" -Force
Write-Host "Indexeur arrêté — procédez à la suppression maintenant"

# Réactiver après suppression
Start-Service -Name "WSearch"

Pour Windows Defender, ajoutez le dossier en exclusion temporaire avant de supprimer :

# Ajouter une exclusion temporaire
Add-MpPreference -ExclusionPath "C:\chemin\vers\dossier"

# Supprimer l'exclusion après la suppression
Remove-MpPreference -ExclusionPath "C:\chemin\vers\dossier"

Avertissement : Ne laissez pas une exclusion antivirus active sur un dossier de production.

Solution 4 : Outil RoboCopy (miroir d’un dossier vide)

Une technique très efficace pour supprimer de nombreux fichiers est de “miroir” un dossier vide sur le dossier cible avec RoboCopy :

REM Créer un dossier vide temporaire
mkdir C:\DossierVide

REM Utiliser RoboCopy pour vider le dossier cible ultra-rapidement
robocopy C:\DossierVide "C:\chemin\vers\dossier" /MIR /MT:16

REM Supprimer ensuite le dossier lui-même
rmdir /s /q "C:\chemin\vers\dossier"

/MIR synchronise en miroir (supprime tout ce qui n’est pas dans la source), /MT:16 utilise 16 threads en parallèle. Cette méthode peut être 10 à 20 fois plus rapide que la suppression via l’Explorateur pour des milliers de fichiers.

Comparatif des méthodes

Méthode Vitesse relative Complexité Risque
Explorateur Windows (Corbeille) Très lente (référence) Nulle Nulle
del /f /q 3-5x plus rapide Faible Faible
rmdir /s /q 5-10x plus rapide Faible Faible
PowerShell [IO.Directory]::Delete 5-10x plus rapide Faible Faible
RoboCopy /MIR /MT:16 10-20x plus rapide Modérée Modérée
RoboCopy + désactivation indexeur 15-30x plus rapide Modérée Faible

Recommandations pour votre workflow habituel

Puisque vous traitez régulièrement des lots de dizaines de milliers de JPEG, voici un script PowerShell réutilisable :

# Script de suppression rapide d'un lot de fichiers JPEG
param(
    [Parameter(Mandatory=$true)]
    [string]$DossierCible
)

Write-Host "Préparation de la suppression rapide de : $DossierCible"

# Arrêter l'indexeur temporairement
$indexeur = Get-Service -Name "WSearch" -ErrorAction SilentlyContinue
if ($indexeur -and $indexeur.Status -eq "Running") {
    Stop-Service -Name "WSearch" -Force
    $indexeurActif = $true
    Write-Host "Indexeur Windows Search arrêté"
}

# Supprimer via l'API .NET directement
$chrono = [System.Diagnostics.Stopwatch]::StartNew()
try {
    [System.IO.Directory]::Delete($DossierCible, $true)
    Write-Host "Suppression terminée en $($chrono.Elapsed.TotalSeconds) secondes"
} finally {
    # Toujours réactiver l'indexeur
    if ($indexeurActif) {
        Start-Service -Name "WSearch"
        Write-Host "Indexeur Windows Search redémarré"
    }
}

Utilisez ce script avec : .\suppression_rapide.ps1 -DossierCible "C:\lot_jpeg_ancien"

Impact du type de stockage

Type de stockage Comportement sur petits fichiers Conseil
HDD (disque dur) Très lent (I/O aléatoires pénalisants) RoboCopy /MT indispensable
SSD SATA Modéré del ou rmdir suffisants
SSD NVMe Rapide mais limité par NTFS [IO.Directory]::Delete optimal
Réseau (NAS/SMB) Très lent (latence par fichier) RoboCopy avec /MT

Si vous travaillez fréquemment avec ce type de lots, envisagez également de placer vos dossiers de travail temporaires sur un volume ReFS (Resilient File System) qui gère beaucoup mieux les opérations sur grand nombre de petits fichiers que NTFS.

N’hésitez pas à préciser votre type de stockage et le nombre exact de fichiers par lot pour affiner les recommandations.


Ayi NEDJIMI — Consultant IT & Microsoft
Pour un accompagnement personnalisé : ayinedjimi-consultants.fr