Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [vb.net] copiare file

  1. #1
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prova a generare il file e se ottieni un errore, usa un numero per cambiare il nome (Copia 1).

    Se ottieni ancora un errore, usa un valore diverso (2) e così via ...

    Insomma, usa un piccolo algoritmo, come fa Windows internamente ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  2. #2

    Re: [vb.net] copiare file

    Originariamente inviato da trudi1990
    Ciao a tutti,
    in windows se cerchi di duplicare un file con lo stesso nome nella stessa cartella
    mette la voce "Copia" davanti al file;
    come posso fare in vb.net ad utilizzare questo meccanismo?
    ovviamente non basta fare ad esempio io.file.copy(filea , "copia" + file a) perche' se anche il file copia + file a esiste genera un'eccezione.
    Io farei un bel ciclo "while copiato=true" all'interno ci metti

    System.IO.File.Exists(PercorsoSalvaFile)

    se il file esiste il file diventa copiamiofile, di nuovo la riga precedente, se esiste allora il file diventa copia1miofile

    ed esegui finchè il file non esiste...

    non è proprio tutto, infatti con questo sistema ti devi creare una variabile contatore (per incrementare copia copia1, copia2, ecc..)... e... non è finita.....

    ma se non ci riesci mi interessa per un mio progetto.......ti posto il codice

    Chissà che qualcuno "bravo" ci dia una risposta migliore...
    Sviluppo per passione

  3. #3
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Io, da neofita, avevo fatto così:
    al "clic copia" azzero la variabile per rinominare il file e richiamo un' altra sub che si occupa della copia, se questa genera un' eccezione con il Catch richiamo un' altra sub che cambia la variabile e richiama la sub della copia. Va avanti fino a che io.file.copy(filea , "copia" + file a) smette di generare eccezioni...sicuramente un ciclo come descritto prima è più elegante...
    Poi per necessità ho deciso di aggiungere al nome del file data e ora, tipo:
    BackUp_01062011_18.03.51_user.config
    in questo modo è abbastanza improbabile generare un' eccezione.
    ciao

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da trudi1990
    chi fa da se fa per tre..
    Avevi chiesto e hai ottenuto dei consigli ... era scontato che facessi da te ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da trudi1990
    anche se in realta' nessuno aveva dato l'idea della funzione ricorsiva..
    Perché la ricorsività non era necessaria e, sebbene elegante, può essere un metodologia pesante (pensa all'uso dello stack se avessi una cartella con 5000 foto e ti tocca trovare il nome 5001 ...).

    In realtà, preferirei un metodo iterativo.

    cosi' si evitano eccezioni
    In che senso? Non si evitano affatto eccezioni.

    alla fine quello che conta e' risolvere il problema..
    Esatto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.