Windows 7 sposta centinaia di file


-1

Ho ~ 600 file ciascuno in una cartella (da solo), in una cartella (da solo), in una cartella (da solo), (ripeti x8), ... cartella principale unita. C'è un modo per sbarazzarsi di questa assurda struttura di inutili sottodirectory che non dureranno 3 ore? Sono su Windows 7.


se si stanno copiando i file in una posizione sullo stesso disco, la copia non richiede quasi tempo, poiché modifica semplicemente i metadati del filesystem per riflettere la modifica della directory principale. come tale, qualsiasi soluzione non dovrebbe richiedere più ore. Scriverei uno script PowerShell per farlo in Windows, ma potresti usare Python o qualsiasi altro linguaggio di scripting disponibile per attraversare l'albero e copiare qualsiasi file in una directory.
Frank Thomas,

Windows non ha problemi a spostare più gruppi di centinaia di file contemporaneamente.
Ramhound,

Basta essere sicuri che i file nelle cartelle separate non abbiano lo stesso nome oppure si può sovrascrivere il file esistente con lo stesso nome quando si copia ovviamente. Sono sicuro che potresti fare qualcosa per farlo, ma puoi farlo da Esplora risorse con un Ctrl + A -> tasto destro -> copia dei file nella cartella da copiare e poi un tasto destro- fai clic su -> incolla per incollare quelli nella cartella in cui li stai copiando. Una volta completata la copia, selezionare tutti i file nella cartella che sono stati copiati correttamente ed eliminarli; questo potrebbe essere meglio dell'uso del taglio.
Pimp Juice IT

Ho provato diverse soluzioni (XCOPY, programma C #) e ricevo costantemente un errore che mi fa sapere che i percorsi sono troppo lunghi. Accidenti ... grazie messaggio di errore. Sono completamente d'accordo. Questo è il problema che sto cercando di risolvere!
Mel374,

Risposte:


1

Personalmente ho scritto una sceneggiatura in pitone per questo genere di cose. Si chiama vulcano, perché provoca l'esplosione di tutti i file nella directory e si riversa nella cartella principale. Ovviamente qualcosa con cui vuoi stare attento. passale solo una directory che vuoi eruttare.

#!/usr/bin/env python
#volcano

import os, sys, shutil


def main():
    for a in sys.argv:
        arg = os.path.normpath(a)
        for root, dirs, files in os.walk(arg, False):
            for f in files:
                src = os.path.join(root, f)
                fname =  os.path.split(src)[1]
                try:
                    shutil.move(src, os.path.join(arg, fname))
                    print "moved %s to %s" %(src, os.path.join(arg, fname))
                except Exception, e:
                    print "Error moving file %s to %s" %(src, os.path.join(arg, fname))
                    print "Exception: ", e 

if __name__ == "__main__":
    main()

Grazie. Ci proverò. Ho scritto un breve programma C # per farlo, ma i percorsi erano troppo lunghi. (Stesso errore quando ho provato ad usare XCOPY).
Mel374,

se si verificano problemi di lunghezza del percorso, esaminare il substcomando in cmd. ti permetterà di assegnare un percorso a una posizione come "b: \". vedi qui sotto la voce "metodo 1": support.code42.com/CrashPlan/4/Tro troubleshooting/…
Frank Thomas

Grazie Frank Thomas! Il percorso "troppo lungo" era abbastanza breve da far funzionare l'abbreviazione dell'intero genitore usando substr!
Mel374,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.