Copia e rinomina file

di il
7 risposte

Copia e rinomina file

Buonasera a tutti,

ho un piccolo problema.

Ho una procedura che tutte le mattine crea un file txt che è variabile nel numero dei record che contiene; oggi 10, domani 8 e dopodomani 12 o 0 etc etc

Ho creato un programmino che schedulato anch'esso ogni giorno trasferisce in locale il file txt lo copia in un'altra cartella e lo rinomina.

Fin qui tutto ok e se nel primo file PIPPO.TXT ci sono 10 record, nella cartella VENDITE mi ritrovo il file rinominato Fatture_lavorate_il_27_06_2021_700.txt

il giorno dopo se il file PIPPO.TXT contiene 20 record, trovo il file rinominato giusto Fatture_lavorate_il_28_06_2021_700.txt ma contenete gli stessi record di quello del giorno prima; se lancio il programma 2 volte riporta i record giusti, ossia 20

Spero di essermi spiegato bene e per favore non massacratemi troppo sul codice

Scherzo ovviamente e accetto qualsiasi consiglio.

Grazie.

**********************************************************************************************

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

*************** TRASFERISCI DA AS400 IL FILE PIPPO.TXT ***********************************

System.Diagnostics.Process.Start("C:\FATTURE\TRASFERIMENTO.dtf")

'***************COPIA FILE TXT E LO RINOMINA CON DATA DEL GIORNO PRECEDENTE ****************

Dim sorgente1 As String
Dim destinazione1 As String
Dim giorno As String
Dim ora As String
Dim min As String
Dim sec As String

giorno = DateTime.Now.AddDays(-1).ToShortDateString

ora = Hour(Now)
min = Minute(Now)
sec = Second(Now)

giorno = Replace(giorno, "/", "_")

sorgente1 = ("C:\FATTURE\PIPPO.TXT")

destinazione1 = ("C:\FATTURE\VENDITE\APPOGGIO.TXT")

'********************************

My.Computer.FileSystem.CopyFile(sorgente1, destinazione1)

My.Computer.FileSystem.RenameFile(destinazione1, "Fatture" & "_" & "lavorate" & "_" & "il" & "_" & giorno & "_" & ora & min & sec & ".txt")

End

Me.Close()
Exit Sub

End Sub
End Class

*************************************************

Grazie e buona serata a tutti.

Massimo

7 Risposte

  • Re: Copia e rinomina file

    Cosa è quel file dtf che esegui??
  • Re: Copia e rinomina file

    Ciao Oregon è un'applicazione che trasferisce un file da AS400 e lo mette in una cartella a piacere e lo nomina come vuoi tu...nel mio esempio PIPPO.txt.
    Ogni giorno però mi arriva sempre lo stesso file PIPPO.txt che allora copia nella cartella vendite e lo rinomino Fatture_lavorate.... etc etc
    Il primo giorno il file rinominato riporta il numero giusto di record, ad es10, ma il giorno dopo, se PIPPO.txt contiene 20 record, la mia procedura in VB.net mi riporta nuovamente i 10 record del giorno prima rinominando il file con la data giusta. ... se lo rilancio immediatamente riporta quelli giusti ossia 20
  • Re: Copia e rinomina file

    Secondo me il comando
    System.Diagnostics.Process.Start("C:\FATTURE\TRASFERIMENTO.dtf")
    non aspetta che il programma TRAFERIMENTO.dtf aspetta che abbia finito e copiato il file, per cui prosegue subito e quindi si trova quello precedente che aveva trasferito.
    Per essere sicuro di ciò prova a fare un
    My.Computer.FileSystem.DeleteFile("C:\FATTURE\PIPPO.TXT")
    prima di lanciare il file DTF e vedi se ti và in errore dicendo che PIPPO.TXT non esiste
  • Re: Copia e rinomina file

    Crea un processo e dopo averlo eseguito usando waitforexit
  • Re: Copia e rinomina file

    RISOLTO

    Buongiorno a tutti e grazie per le vostre preziose informazioni.

    SirJo, effettivamente mettendo il delete del file, lanciando il pgm mi dice che non trova il file e si pianta ma forse c'è il metodo per dirgli di bypassare questo errore, ma non lo conosco..

    Ho risolto con il suggerimento di Oregon con il seguente codice:

    Dim proc = System.Diagnostics.Process.Start("C:\FATTURE\TRASFERIMENTO.dtf")
    proc.WaitForExit()

    Grazie ancora a tutti
  • Re: Copia e rinomina file

    Il sistema per risolvere il problema è proprio quello di Oregon, il mio era solo un test per capire dov'era il problema, e il fatto che ti dice che il file non esiste conferma proprio la mia ipotesi che non attendevi il completamento del Process.Start
  • Re: Copia e rinomina file

    Ciao SirJo, avevi centrato perfettamente il problema ... non ci sarei mai arrivato da solo.

    Grazie ancora anche a te per l'aiuto.
Devi accedere o registrarti per scrivere nel forum
7 risposte