Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [VB.NET 2005] Copia di un file su due destinazioni

    Salve gente!

    Ho la necessità di copiare uno stesso file, ad es. C:\ciccio.txt, CONTEMPORANEAMENTE su due altri hard disk, es. D:\ e E:\

    E' possibile fare ciò senza ricorrere al raid?

    Ovviamente per "CONTEMPORANEAMENTE" intendo una sola operazione di lettura dall'hard disk sorgente e una sola scrittura nello stesso momento su entrambi i dischi di destinazione (cioè NON prima su D:\ e poi su E:\).

    Inutile specificare che questa operazione deve essere ripetuta per un elenco di migliaia di file presenti su C:\

    Grazie per qualunque idea.

    P.S: la domanda vale anche per le directory (copiandole con tutte le sottodirectory e files contenuti).

    Thanks!

    Make Pazziata-tàààà NOT war!

  2. #2
    Ti conviene scrivere da te una funzione che faccia questo mestiere: dovrà leggere a blocchi il file (memorizzando man mano i pezzi in un buffer) e scriverlo nei due file diversi.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    veramente speravo che esistesse già qualcosa di pronto e testato, in maniera da dedicarmi al resto del programma che è, secondo me, più complesso.

    COmunque grazie per l'idea
    Make Pazziata-tàààà NOT war!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    "pronto e testato" ... ?

    Non volevi proprio fare nessuna fatica ...

  5. #5
    Che ne pensi di fare 2 Thread che scrivono contemporaneamente da una stessa sorgente?
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  6. #6
    Originariamente inviato da oregon
    "pronto e testato" ... ?

    Non volevi proprio fare nessuna fatica ...
    No, è che vorrei evitare di "re-inventare la ruota".

    Siccome questo quesito mi sembra abbastanza "semplice", speravo che esistesse magari una funzione simile al fileCopy che copiasse da una sola sorgente su due o più destinazioni.
    In questo modo potrei concentrarmi a risolvere parti dell'algoritmo del mio software che mi sembrano decisamente più complesse.
    Make Pazziata-tàààà NOT war!

  7. #7
    Originariamente inviato da chipdb
    Che ne pensi di fare 2 Thread che scrivono contemporaneamente da una stessa sorgente?
    E' proprio quello che avevo in mente ma... non so come si fa!
    Saresti così gentile da darmi qualche indicazione più dettagliata?

    Se faccio due thread che copiano lo stesso file su due destinazioni diverse ottengo sì la scrittura contemporanea ma anche una doppia lettura (una per ogni thread), che invece io vorrei evitare!

    Diciamo che se proprio devo rinunciare a qualcosa preferisco perdere la contemporaneità (quindi niente thread, scrivendo prima su un drive e poi sull'altro) a vantaggio di una sola lettura del file nel disco di origine; ma anche in questo caso: come si fa a leggere una sola volta copiando due volte?
    Make Pazziata-tàààà NOT war!

  8. #8
    Sinceramente al momento non ho sotto mano Vb.net quindi non saprei aiutarti per la realizzazione in codice!

    Il concetto è questo: tu puoi leggere il file una sola volta, ad esempio salvandotelo in un array di byte (occhio alla dimensione del file, che non sia troppo grande!), oppure leggendone man mano ad esempio 20byte per volta, e poi dare in pasto ai thread l'append sui 2 file!

    Ancora meglio sarebbe ottenere lo stream dal file di origine, leggere tot byte alla volta e scriverli contemporaneamente...
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.