Me he encontrado con este problema varias veces en las que me gustaría tener varias versiones del mismo archivo en el mismo directorio. La forma en que lo he estado haciendo usando C # es agregando una marca de tiempo al nombre del archivo con algo como esto DateTime.Now.ToString().Replace('/', '-').Replace(':', '.'). ¿Hay una mejor manera de hacer esto?
Existen los siguientes especificadores de formato personalizado y (año), M (mes), d (día), h (hora 12), H (hora 24), m (minuto), s (segundo), f (segunda fracción), F (segunda fracción, se recortan los ceros finales), t (PM o AM) yz (zona horaria).
Con método de extensión
Uso:
string result ="myfile.txt".AppendTimeStamp();//myfile20130604234625642.txt
Agregué Path.GetDirectoryName(fileName)para obtener la ruta completa al archivo. Luego se reemplaza string.Concat()con Path.Combine()obtener el nombre de archivo completo.
gilu
17
Prefiero usar:
string result ="myFile_"+DateTime.Now.ToFileTime()+".txt";
¿Qué hace ToFileTime ()?
Convierte el valor del objeto DateTime actual en una hora de archivo de Windows.
public long ToFileTime()
Una hora de archivo de Windows es un valor de 64 bits que representa el número de intervalos de 100 nanosegundos que han transcurrido desde las 12:00 de la medianoche del 1 de enero de 1601 AD (CE) Hora universal coordinada (UTC). Windows usa un tiempo de archivo para registrar cuando una aplicación crea, accede o escribe en un archivo.
esta respuesta es la forma en que obtienes la marca de tiempo. adjúntelo a un archivo usando la clase Path y la manipulación de cadenas no es un problema en absoluto. esto es solo una alternativa al método DateTime.ToString (String) o string.Format ("{0: aaaa-MM-dd_hh-mm-ss-tt}", DateTime.Now);
Para Fecha y hora actuales como nombre de un archivo en el sistema de archivos. Ahora llame al método string.Format y combínelo con DateTime.Now para obtener un método que genere la cadena correcta según la fecha y la hora.
using System;
using System.IO;classProgram{staticvoidMain(){//// Write file containing the date with BIN extension//string n =string.Format("text-{0:yyyy-MM-dd_hh-mm-ss-tt}.bin",DateTime.Now);File.WriteAllText(n,"abc");}}
Path.GetDirectoryName(fileName)
para obtener la ruta completa al archivo. Luego se reemplazastring.Concat()
conPath.Combine()
obtener el nombre de archivo completo.Prefiero usar:
¿Qué hace ToFileTime ()?
Fuente: documentación de MSDN - Método DateTime.ToFileTime
fuente
Quizás agregar en su
DateTime.Now.Ticks
lugar, es un poquito más rápido ya que no creará 3 cadenas y el valor de ticks siempre será único también.fuente
puedes usar:
fuente
Puede usar a continuación en su lugar:
fuente
Para Fecha y hora actuales como nombre de un archivo en el sistema de archivos. Ahora llame al método string.Format y combínelo con DateTime.Now para obtener un método que genere la cadena correcta según la fecha y la hora.
Salida:
fuente