SmartCopy v0.3.1
Copiar y mover archivos en Windows

Reanuda tras un corte,
verifica antes de borrar.

Si el diálogo de copia del Explorador se corta, no te dice hasta dónde llegó. SmartCopy pone el trabajo en cola para pausar y reanudar, y solo borra el origen de un movimiento tras verificar la copia. Saca el USB, pierde el NAS, reinicia: el progreso sigue ahí.

Sin instalación · sin permisos de administrador · Windows 10 / 11 (64 bits)

Diseño real · datos de ejemplo
SmartCopy v0.3.1 Consola de administraciónRegistro─ □ ✕
Origen
D:\Fotos 2024
D:\Originales de cámara
Destino
E:\Copia
Acción
CopiarMover
Verificar
SHA-256
Empezar
Fotos 2024 → Copia En curso
12,481 / 20.004 archivos 14.2 GB / 22.8 GB 186 MB/s Tiempo restante 00:47

12.481 hechos · 0 omitidos · 0 fallidos · 8,6 GB restantes

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

Pausar Cancelar
Archivo del proyecto → NAS Esperando reconexión
3,902 / 6.110 archivos 41.0 GB / 64.3 GB En pausa

Dispositivo desconectado: continuará cuando vuelva (WinError 64)

Facturas → Archivo Hecho
412 / 412 archivos SHA-256 verificado
El orden de un movimiento

El origen se borra al final

Mover son tres pasos: cada uno espera al anterior.

Paso 1

Copiar

escribe en el destino como .scpart un archivo temporal. Solo cuando está completo toma el nombre definitivo, así un archivo a medio escribir nunca parece terminado.

Paso 2

Verificar

Se comparan tamaño y fecha de modificación, y SHA-256 si lo pides. Si algo difiere, esa copia se borra y se vuelve a escribir.

Paso 3

Borrar el origen

Solo los archivos verificados pierden su origen. Los omitidos conservan el suyo, y las carpetas vacías se limpian al final.

Un movimiento dentro de la misma unidad es solo un cambio de nombre: rápido y sin ningún estado intermedio. Los tres pasos anteriores son solo para cambiar de unidad.

Cuando el nombre ya existe

Seis políticas de conflicto

Decídelo al crear el trabajo o deja que pregunte cada vez. Si eliges que pregunte, el diálogo ofrece Aplicar también a los conflictos siguientes.

PolíticaQué haceCuándo usarla
overwriteSobrescribe el destinoCopias unidireccionales donde el origen es siempre lo más nuevo
skipLo omite y deja el origen intactoRellenar solo lo que falta
renamenombre (1).extcomo archivo nuevoCuando hay que conservar ambos (por defecto)
keep_newerConserva el modificado más recientementeFusionar una carpeta editada en ambos lados
keep_largerConserva el más grandeCuando hay archivos truncados de por medio
askMuestra ambos tamaños y fechas y preguntaCuando cada caso requiere criterio
Cortes · desconexiones · apagones

Recuerda dónde se detuvo

El progreso no vive solo en pantalla: se escribe en disco. Cerrar la aplicación o quedarse sin luz no te devuelve al principio.

El diario del trabajo

Cada archivo terminado se añade como una línea. Como solo añade, un corte de luz daña como mucho la última línea, y esa línea se descarta.

  • Ejecútalo otra vez y los archivos terminados se omiten
  • Un trabajo que termina bien borra su propio diario
  • Al abrir busca trabajos sin terminar y pregunta si seguir

%LOCALAPPDATA%\SmartCopy\jobs\

Reanudar dentro de un mismo archivo

Para un archivo grande, .scpartconserva exactamente hasta dónde llegó. Solo reanuda después de que un archivo anexo confirme que el origen mantiene tamaño y fecha.

  • Si el origen cambió, empieza de nuevo en vez de reanudar
  • Los restos de otro trabajo se limpian en el acto

USB desconectado · NAS caído

Cuando un dispositivo desaparece no se cuenta como fallo: el trabajo pasa a Esperando reconexión Cuando vuelve, el trabajo sigue desde donde se detuvo.

WinError 21 · 53 · 59 · 64 · 1167

Solo los archivos fallidos, otra vez

Los problemas pasajeros —un archivo bloqueado por otro programa, por ejemplo— se reintentan solos a los 0,5 s, luego 2 s, luego 5 s. Lo que sigue fallando queda en una lista, y el botón Reintentar vuelve a ejecutar solo esos, conservando la estructura de carpetas.

Cuando no hay nadie

Configúralo una vez y funciona solo

Si pulsas lo mismo cada vez, eso es trabajo para un programa.

Carpeta vigilada

Cuando llegan archivos y todo se calma, ejecuta el trabajo guardado. Nunca toca un archivo que aún se está escribiendo: espera a que cesen los cambios.

smartcopy-cli watch "Entrega" --folder D:\VolcadoTarjeta

Programador de tareas

Cada día a las 3 de la madrugada, o al iniciar sesión. Sin permisos de administrador, y se borra desde el propio Programador de tareas de Windows.

smartcopy-cli schedule --install "Copia semanal" --when daily --at 03:00

Clic derecho en el Explorador

Haz clic derecho en una carpeta y aparecen tus trabajos guardados. Al elegir uno, la ventana se rellena con esos ajustes; Iniciar lo pulsas tú.

Los certificados se avalan entre sí

Un solo certificado es fácil de tirar. Por eso cada uno lleva el hash del anterior: quita uno del medio y la cadena se rompe.

smartcopy-cli ledger --verify

Esto no es una autoridad de sellado de tiempo. Lo que impide es entregar diez veces y mostrar solo las nueve que te convienen.

Aunque sean 100.000

La cola marca el orden

Qué manejaCómo
Tamaño de bloqueSe elige según el medio: 4 MB en discos fijos, 1 MB en USB, 256 KB en red. Pausa y cancelación responden en los límites de bloque, así que no se agranda porque sí.
Trabajos simultáneosDos por defecto, porque varios trabajos golpeando el mismo disco lo hacen todo más lento.
PrioridadCada trabajo lleva una prioridad y los más altos van primero. Los empates mantienen el orden de entrada.
Enumeración masivascandir recorre el árbol, y no sigue enlaces simbólicos ni uniones, así que nunca cae en un bucle de copia.
Rutas largas · UnicodeSe manejan con el prefijo de ruta que esquiva el límite de 260 caracteres. Los nombres Unicode quedan tal cual.
Actualización del progresoAgrupadas a una vez cada 0,2 s, para que con 100.000 archivos dibujar la pantalla nunca cueste más que copiar.
Archivos a la vezDentro de un trabajo se copian varios archivos a la vez (hasta 16). Rinde sobre todo con muchos archivos pequeños o sobre un NAS.
Límite de velocidadUn techo en bytes por segundo. Para cuando una copia corre mientras estás en una reunión. Los trabajadores comparten un mismo cubo.
FiltradoPatrones de inclusión y exclusión, exclusión de carpetas enteras, rangos de tamaño y fecha, y omitir archivos ocultos.
Vista previaCalcula qué se movería sin escribir absolutamente nada.
Comprobaciones previasEspacio libre en el destino, si el destino está dentro del origen, si es una ruta protegida y si los orígenes existen: todo se comprueba antes.

Es más lento que robocopy. Porque para cada archivo guarda información de reanudación, verifica lo copiado y escribe en el diario: esas tres cosas son la razón de ser de este programa. En un SSD interno resulta unas 5-15 veces más lento con muchos archivos pequeños y unas 7 veces con uno grande. Las mediciones y el método están en el repositorio.

Todos los trabajos en un sitio

Consola de administración

La ventana muestra lo que se mueve ahora; la consola, el conjunto: cola, historial, recuperación, registros y verificación. smartcopy-cli admin o el botón Consola de administración de la ventana lo abre.

Lo que ves

  • Banner de progreso: progreso, velocidad y tiempo restante combinados
  • Tarjetas de trabajo: chip de estado, progreso, hechos / idénticos / omitidos / fallidos
  • Detalles del trabajo: lista de fallos con motivos, avisos, velocidad media
  • Recuperación: retomar un trabajo interrumpido o descartarlo
  • Comprobación de integridad: comparar el destino con el manifiesto

Lo que puedes hacer

  • Trabajo nuevo: selector de rutas, filtros, opciones de rendimiento
  • Comprobación previa: rutas protegidas y espacio libre avisados de antemano
  • Pausar / reanudar / cancelar / reintentar fallos (uno o todos)
  • Ajustar cuántos trabajos corren a la vez

La consola se abre solo en 127.0.0.1 y exige un token generado de nuevo en cada ejecución. Un dominio externo apuntando a esta dirección (DNS rebinding) se detiene con la comprobación de Host , y una petición que otro sitio hace enviar a tu navegador se detiene con la comprobación de Origin .

Sin ventana

El mismo motor en la línea de comandos

Para .bat y el Programador de tareas, usa smartcopy-cli.exe.

# copiar una carpeta + verificar con SHA-256 > smartcopy-cli copy "D:\Fotos 2024" E:\Copia --verify hash [running] [################----] 83.3% 14.2 GB/22.8 GB 186 MB/s ETA 00:47 # mover — renombrar si el nombre existe > smartcopy-cli move C:\Archivo E:\Almacen --conflict rename # ver trabajos interrumpidos y continuar > smartcopy-cli recover > smartcopy-cli recover --resume # comparar una copia hecha antes > smartcopy-cli verify D:\Origen E:\Copia\Origen --level hash # registrar el menú del Explorador (usuario actual, sin permisos de admin) > smartcopy-cli shell --install
Descargar

Ninguno de los dos necesita instalación

Los ajustes y registros viven en %LOCALAPPDATA%\SmartCopy y en ningún otro sitio.

Interfaz de ventana

SmartCopy.exe

Arrastra y suelta para cargar y sigue el progreso en las tarjetas. El menú contextual del Explorador llama a este mismo archivo.

13.6 MB · SHA-256 2e1f9b91034f8cea14cf6d2236741b7a165b25ebaf364e1b9a7d203578892197

Descargar

Línea de comandos

smartcopy-cli.exe

copy · move · recover · verify · shell. Va bien para scripts y programadores de tareas.

13.6 MB · SHA-256 d3f8f003b8d1f2b22faf621b5b1531c73a6e456315124e609be43b9e55d53c96

Descargar

Integración con el menú del Explorador

Haz clic derecho en un archivo o carpeta para Añadir a SmartCopy, y en la carpeta de destino, Usar como destino de SmartCopy. Cárgalos en varias tandas: todos se reúnen en una ventana.

Registrado solo bajo HKEY_CURRENT_USER: un shell --uninstall lo deshace

Lo que necesitas

  • Windows 10 / 11 (64 bits)
  • Sin permisos de administrador
  • Funciona con SMB · NAS · USB · discos extraíbles
  • Python 3.9 o superior para ejecutar desde el código (solo biblioteca estándar)