Help CLASS DATATIME

sabato 01 novembre 2008 - 14.26

kintaro Profilo | Junior Member

Ciao a tutti
sto creando un pgm che mi archivia dei file a seconda di un parametro data.

Per dirla meglio vorrei mettere in una determinata cartella dove è pianificato un bck prima della loro cancellazione tutti quei file che sono distribuite nelle cartelle del mio server e che hanno presenti da più di 6 mesi ...

mi sapete aiutare?

Grazie

Fabio

freeteo Profilo | Guru

ciao,
a mio avviso puoi girare sui file tramite la classe "FileInfo" (o se ti serve l'equivalente per le directory "DirectoryInfo" ) e farti dare la data di creazione (o ultima modifica dipende da cosa cerchi) e poi decidere se spostarli.
Entrambi sono del Namespace "System.IO".

Tradotto in codice diciamo qualcosa di questo tipo:

string dir = @"\...sorgente...\"; DirectoryInfo dirInfo = new DirectoryInfo(dir); foreach (FileInfo file in dirInfo.GetFiles()) { //--- cancello quelli di una settimana fa, con il -7 giorni if (file.CreationTime > DateTime.Now.AddDays(-7)) File.Move(file.FullName, @"\...destinazione...\" + file.Name); }
adattalo un po' alla tua situazione ma credo che con queste classi riesci a fare quello che ti serve.
ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

kintaro Profilo | Junior Member

Grazie tantissime!!
non sapevo che potessi fare operazioni sulle date (-7) con c# ... pensavo ci fosse un metodo dedicato :)

ciao

Fabio

freeteo Profilo | Guru

>Grazie tantissime!!
di niente, siamo qui per questo


>non sapevo che potessi fare operazioni sulle date (-7) con c#
>... pensavo ci fosse un metodo dedicato :)
si diciamo che il mio codice è stato scritto velocemente, infatti uso un "AddDays" e lo confronto con la data direttamente, quindi ad esempio, se ci sono dei minuti di differenza l'if torna true, perchè quello che è stato aggiunto è solo il numero di giorni.

Se vuoi fare qualcosa di più preciso ti conviene fare una differenza di date, che è un "TimeSpan" e verificare che la differenza sia quello che ti interessa:
TimeSpan diff = DateTime.Now - file.CreationTime; if(diff.Days > ...) ....
qualcosa di questo genere...

Cmq puoi partire per approfondire da questi link "ufficiali":
http://msdn.microsoft.com/it-it/library/system.timespan.aspx
http://msdn.microsoft.com/it-it/library/system.datetime.aspx

ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

kintaro Profilo | Junior Member

Ottimo direi!!
qst è ancora meglio!!
Grazie tante

Fabio

freeteo Profilo | Guru

>Ottimo direi!!
>qst è ancora meglio!!
>Grazie tante
di niente, se ti è stata utile accetta una risposta così chiudiamo il thread.Grazie.

ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5