Aggiungere data e ora ad un file prima della desinenza di un file

venerdì 14 maggio 2010 - 16.39

nikkysixx Profilo | Junior Member

Ciao a tutti,sto cercando di automatizzare la copia di un file di backup di un file.Per fare ciò uso il metodo file.copy per copiare nella destinazione il file di backup

File.Copy("d:\backup.bak", objSaveFileDialog.FileName)

Il problema è che cosi facendo ottengo un file NomeCheDigitaLutente.bak mentre vorrei accodare a tale messaggio data e ora prima dell estensione .bak

Spero sia chiaro ,ma è piu semplice a pensarlo che a spiegarlo :)

nico839 Profilo | Senior Member

ciao, provato con un replace di objSaveFileDialog.FileName?
tipo objSaveFileDialog.FileName.replace(".bak",data e ora & ".bak")

nikkysixx Profilo | Junior Member

Lo provo subito ti ringrazio,ma perdona la domanda banale...come ricavo data e ora corrente in formato string :)

kataklisma Profilo | Senior Member

Ciao!

>Lo provo subito ti ringrazio,ma perdona la domanda banale...come
>ricavo data e ora corrente in formato string :)

DateTime.Now.ToShortDateString()+"-"+DateTime.Now.ToShortTimeString()


Ecco al completo :

String currentDateTime = DateTime.Now.ToShortDateString()+"-"+DateTime.Now.ToShortTimeString();
string path = objFileDialog.Filename.Replace(".bak",currentDateTime + ".bak");
...
...
Ciao ;)

------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

nico839 Profilo | Senior Member


>Ecco al completo :
>
>String currentDateTime = DateTime.Now.ToShortDateString()+"-"+DateTime.Now.ToShortTimeString();
>string path = objFileDialog.Filename.Replace(".bak",currentDateTime
>+ ".bak");
>...
>...

se posso aggiungere una cosa, essendo che deve diventare il nome di un file, con questi metodi la data non ritorna nel formato "dd/mm/yyyy/"?a me diede errore poichè interpretava lo "/" come parte di un percorso e non come nome del file....forse sarebbe meglio salvarlo nel formato "ddmmyyy-hhmm"

nikkysixx Profilo | Junior Member

Grazie ma ho un problema e cioè prima del salvataggio mi va in crash il tutto.
[edit: credo sia il problema sollevato da nico839]

La msgbox di currentDateTime(ipotizzando un save su c:) prima di salvare è

c:\nome file 14/05/2010 - 17.27.bak

AntCiar Profilo | Expert

ciao.

Usa questo:


String currentDateTime = String.Format("{0:ddmmyyy-hhmm}", DateTime.Now);
string path = objFileDialog.Filename.Replace(".bak",currentDateTime + ".bak");

Cristian Barca

kataklisma Profilo | Senior Member

>se posso aggiungere una cosa, essendo che deve diventare il nome
>di un file, con questi metodi la data non ritorna nel formato
>"dd/mm/yyyy/"?a me diede errore poichè interpretava lo "/" come
>parte di un percorso e non come nome del file....forse sarebbe
>meglio salvarlo nel formato "ddmmyyy-hhmm"

Giustissimo :)

basta un semplice replace:

DateTime.Now.ToShortDateString().Replace("/", "")
+ "-" + DateTime.Now.ToShortTimeString()

Oppure una formattazione di stringa ;)
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

nikkysixx Profilo | Junior Member

Funziona perfettamente grazie a tutti :) l unico appunto sarebbe se posso ottenere la stringa
backup 14052010-17.42
in questo formato
backup 14-05-2010-17.42

nico839 Profilo | Senior Member

certo,la tua stringa te la puoi manipolare come vuoi,basta fare il replace di "/" con "-"

kataklisma Profilo | Senior Member

>Funziona perfettamente :) l unico appunto sarebbe se posso ottenere
>la stringa
>backup 14052010-17.42
>in questo formato
>backup 14-05-2010-17.42
>

Si puoi... .Replace("/","-"), risulterebbe comunque un nome valido ;)

P.S cristian ha dato un'ottima risoluzione (infatti ti ho anche detto che bastava una formattazione di stringa) te la riporto dal suo post precedente :

String currentDateTime = String.Format("{0:ddmmyyy-hhmm}", DateTime.Now);

Che nel tuo caso diventerebbe :

String currentDateTime = String.Format("{0:dd-mm-yyy-hh.mm}", DateTime.Now);

Ciao ;)
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

nikkysixx Profilo | Junior Member

Vero! adesso conosco 10 modi diversi per concatenare data e ora a una stringa
E' un peccato non poter assegnare risposte a più persone diverse
sorry -.-

kataklisma Profilo | Senior Member

>Vero! adesso conosco 10 modi diversi per concatenare data e ora
>a una stringa
Perfetto, qualcosa in piu nel tuo bagaglio....:)

>E' un peccato non poter assegnare risposte a più persone diverse
>sorry -.-
Infatti, cristian è stato molto piu preciso e conciso...se la meritava!

Ciao ;)





------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

nico839 Profilo | Senior Member

concordo con Ignazio e poi l'importante è essere stati utili a risolvere un problema
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5