SmartCopy v0.3.1
Copie et déplacement de fichiers Windows

Reprend après une coupure,
vérifie avant de supprimer.

Quand la copie de l'Explorateur s'interrompt, elle ne dit pas où elle en était. SmartCopy met le travail en file d'attente, permet pause et reprise, et ne supprime la source d'un déplacement qu'après vérification. Débranchez l'USB, perdez le NAS, redémarrez : la progression reste.

Sans installation · sans droits administrateur · Windows 10 / 11 (64 bits)

Disposition réelle · données d'exemple
SmartCopy v0.3.1 Console d'administrationJournal─ □ ✕
Source
D:\Photos 2024
D:\Originaux appareil
Destination
E:\Sauvegarde
Action
CopierDéplacer
Vérifier
SHA-256
Démarrer
Photos 2024 → Sauvegarde En cours
12,481 / 20 004 fichiers 14.2 GB / 22.8 GB 186 MB/s Temps restant 00:47

12 481 faits · 0 ignorés · 0 échecs · 8,6 Go restants

D:\Photos 2024\2024-07\IMG_4821.ARW

Pause Annuler
Archive projet → NAS Attente de reconnexion
3,902 / 6 110 fichiers 41.0 GB / 64.3 GB En pause

Périphérique déconnecté — reprendra à son retour (WinError 64)

Factures → Archives Terminé
412 / 412 fichiers SHA-256 vérifié
L'ordre d'un déplacement

La source part en dernier

Déplacer, c'est trois étapes : chacune attend la précédente.

Étape 1

Copier

écrit à destination sous .scpart un fichier temporaire. Il ne prend son nom définitif qu'une fois écrit en entier : un fichier à moitié écrit ne ressemble jamais à un fichier valide.

Étape 2

Vérifier

La taille et la date de modification sont comparées, et le SHA-256 si vous le demandez. En cas d'écart, la copie est supprimée puis refaite.

Étape 3

Suppression de la source

Seuls les fichiers vérifiés perdent leur source. Les fichiers ignorés gardent la leur, et les dossiers vides sont nettoyés à la fin.

Un déplacement au sein d'un même lecteur n'est qu'un renommage : rapide, sans aucun état intermédiaire. Les trois étapes ci-dessus ne servent qu'en cas de changement de lecteur.

Quand le nom existe déjà

Six règles de conflit

Décidez à la création de la tâche, ou laissez l'outil demander à chaque fois. Si vous choisissez de répondre, la boîte de dialogue propose Appliquer aussi aux conflits suivants.

RègleCe qu'elle faitQuand l'utiliser
overwriteÉcrase la destinationSauvegardes unidirectionnelles où la source fait foi
skipL'ignore et laisse la source en placeNe compléter que ce qui manque
renamenom (1).exten tant que nouveau fichierQuand il faut garder les deux (par défaut)
keep_newerGarde le plus récemment modifiéFusionner un dossier modifié des deux côtés
keep_largerGarde le plus grosQuand des fichiers tronqués traînent
askAffiche les deux tailles et dates, puis demandeQuand chaque cas demande un arbitrage
Interruptions · débranchements · coupures de courant

Il se souvient de l'endroit où il s'est arrêté

La progression ne vit pas seulement à l'écran : elle est écrite sur le disque. Fermer l'application ou perdre le courant ne vous ramène pas au début.

Le journal de la tâche

Chaque fichier terminé est ajouté sur une ligne. Comme il ne fait qu'ajouter, une coupure n'abîme au pire que la dernière ligne, qui est simplement écartée.

  • Relancez : les fichiers terminés sont ignorés
  • Une tâche terminée avec succès efface son propre journal
  • Au démarrage, il repère les tâches inachevées et propose de les reprendre

%LOCALAPPDATA%\SmartCopy\jobs\

Reprise à l'intérieur d'un même fichier

Pour un gros fichier, .scpartconserve exactement où il en était. Il ne reprend qu'après qu'un fichier annexe a confirmé que la source a toujours la même taille et la même date.

  • Si la source a changé, il recommence au lieu de reprendre
  • Les résidus d'une autre tâche sont nettoyés sur place

USB débranché · NAS perdu

Quand un périphérique disparaît, ce n'est pas un échec : la tâche passe en Attente de reconnexion À son retour, le travail reprend là où il s'était arrêté.

WinError 21 · 53 · 59 · 64 · 1167

Seulement les fichiers en échec, à nouveau

Les soucis passagers — un fichier verrouillé par un autre programme, par exemple — sont réessayés automatiquement après 0,5 s, puis 2 s, puis 5 s. Ce qui échoue encore atterrit dans une liste, et le bouton Réessayer relance uniquement ceux-là — en conservant la structure des dossiers.

Quand personne ne regarde

Réglez-le une fois, il tourne seul

Si vous cliquez la même chose à chaque fois, c'est le travail d'un programme.

Dossier surveillé

Quand des fichiers arrivent et que tout se calme, la tâche enregistrée démarre. Jamais de fichier en cours d'écriture : on attend la fin des changements.

smartcopy-cli watch "Livraison" --folder D:\CopieCarte

Planificateur de tâches

Chaque jour à 3 h du matin, ou à l'ouverture de session. Sans droits administrateur, et supprimable depuis le Planificateur de tâches de Windows.

smartcopy-cli schedule --install "Sauvegarde hebdo" --when daily --at 03:00

Clic droit dans l'Explorateur

Clic droit sur un dossier : vos tâches enregistrées apparaissent. En choisir une remplit la fenêtre avec ces réglages — c'est vous qui lancez.

Les certificats se portent garants

Un certificat isolé est facile à jeter. Chacun porte donc le hachage du précédent : retirez-en un au milieu et la chaîne casse.

smartcopy-cli ledger --verify

Ce n'est pas une autorité d'horodatage. Ce qu'elle empêche : livrer dix fois et n'en montrer que neuf, les plus flatteuses.

Même avec 100 000 fichiers

La file impose l'ordre

Ce qu'il gèreComment
Taille de blocChoisie selon le support : 4 Mo pour les disques fixes, 1 Mo pour l'USB, 256 Ko pour le réseau. Pause et annulation répondent aux frontières de bloc : inutile de l'agrandir à l'aveugle.
Tâches simultanéesDeux par défaut, car plusieurs tâches martelant le même disque ralentissent l'ensemble.
PrioritéChaque tâche porte une priorité, les plus hautes passent d'abord. À égalité, l'ordre d'ajout est conservé.
Énumération en massescandir parcourt l'arborescence, et ne suit ni liens symboliques ni jonctions : aucune boucle de copie possible.
Chemins longs · UnicodeGérés avec le préfixe de chemin qui contourne la limite de 260 caractères. Les noms Unicode restent intacts.
Mise à jour de la progressionRegroupées à une fois toutes les 0,2 s — pour qu'avec 100 000 fichiers, dessiner l'écran ne coûte jamais plus que copier.
Fichiers simultanésAu sein d'une tâche, plusieurs fichiers sont copiés en parallèle (jusqu'à 16). C'est surtout payant avec beaucoup de petits fichiers ou via un NAS.
Limite de débitUn plafond en octets par seconde. Pour quand une sauvegarde tourne pendant une réunion. Les workers partagent le même seau.
FiltrageMotifs d'inclusion et d'exclusion, exclusion de dossiers entiers, plages de taille et de date, et exclusion des fichiers cachés.
AperçuCalcule ce qui serait déplacé sans rien écrire du tout.
Vérifications avant départL'espace libre à destination, si la destination se trouve dans la source, s'il s'agit d'un chemin protégé, et si les sources existent — tout est vérifié avant.

C'est plus lent que robocopy. Parce que pour chaque fichier il note de quoi reprendre, vérifie ce qu'il a copié et écrit dans le journal — ces trois choses sont la raison d'être de ce programme. Sur un SSD interne, environ 5 à 15 fois plus lent pour beaucoup de petits fichiers et environ 7 fois pour un gros. Les mesures et la méthode sont dans le dépôt.

Toutes les tâches au même endroit

Console d'administration

La fenêtre montre ce qui bouge ; la console montre l'ensemble : file, historique, reprise, journaux, intégrité. smartcopy-cli admin ou le bouton Console d'administration de la fenêtre l'ouvre.

Ce que vous voyez

  • Bandeau de progression — progression, vitesse et temps restant cumulés
  • Cartes de tâche — pastille d'état, progression, faits / identiques / ignorés / échecs
  • Détails de la tâche — liste des échecs et raisons, avertissements, débit moyen
  • Reprise — reprendre une tâche interrompue ou l'abandonner
  • Contrôle d'intégrité — comparer la destination au manifeste

Ce que vous pouvez faire

  • Nouvelle tâche — sélecteur de chemins, filtres, options de performance
  • Vérification préalable — chemins protégés et espace libre signalés d'avance
  • Pause / reprise / annulation / relance des échecs (une tâche ou toutes)
  • Régler le nombre de tâches simultanées

La console ne s'ouvre que sur 127.0.0.1 uniquement et exige un jeton recréé à chaque exécution. Un domaine externe pointant sur cette adresse (DNS rebinding) est bloqué par la vérification de Host , et une requête qu'un autre site fait envoyer par votre navigateur est bloquée par la vérification de Origin .

Sans fenêtre

Le même moteur en ligne de commande

Pour les fichiers batch et le Planificateur, utilisez smartcopy-cli.exe.

# copier un dossier + vérifier en SHA-256 > smartcopy-cli copy "D:\Photos 2024" E:\Sauvegarde --verify hash [running] [################----] 83.3% 14.2 GB/22.8 GB 186 MB/s ETA 00:47 # déplacer — renommer si le nom est pris > smartcopy-cli move C:\Archives E:\Entrepot --conflict rename # voir les tâches interrompues et reprendre > smartcopy-cli recover > smartcopy-cli recover --resume # comparer une copie faite plus tôt > smartcopy-cli verify D:\Source E:\Sauvegarde\Source --level hash # enregistrer le menu de l'Explorateur (utilisateur courant, sans droits admin) > smartcopy-cli shell --install
Télécharger

Ni l'un ni l'autre ne s'installe

Réglages et journaux vivent sous %LOCALAPPDATA%\SmartCopy et nulle part ailleurs.

Interface fenêtrée

SmartCopy.exe

Glissez-déposez pour charger et suivez la progression sur les cartes. Le menu contextuel de l'Explorateur appelle ce même fichier.

13.6 MB · SHA-256 2e1f9b91034f8cea14cf6d2236741b7a165b25ebaf364e1b9a7d203578892197

Télécharger

Ligne de commande

smartcopy-cli.exe

copy · move · recover · verify · shell. Pratique pour les scripts et les planificateurs.

13.6 MB · SHA-256 d3f8f003b8d1f2b22faf621b5b1531c73a6e456315124e609be43b9e55d53c96

Télécharger

Intégration au clic droit de l'Explorateur

Clic droit sur un fichier ou un dossier pour Ajouter à SmartCopy, et dans le dossier de destination, Définir comme destination SmartCopy. Ajoutez-les en plusieurs fois : tout se rassemble dans une seule fenêtre.

Enregistré uniquement sous HKEY_CURRENT_USER — un shell --uninstall annule tout

Ce qu'il vous faut

  • Windows 10 / 11 (64 bits)
  • Aucun droit administrateur
  • Fonctionne avec SMB · NAS · USB · disques amovibles
  • Python 3.9 ou plus pour exécuter depuis les sources (bibliothèque standard uniquement)