Anexar carimbo de data / hora a um nome de arquivo
118
Já me deparei com esse problema várias vezes, no qual gostaria de ter várias versões do mesmo arquivo no mesmo diretório. A maneira como tenho feito isso usando C # é adicionando um carimbo de data / hora ao nome do arquivo com algo assim DateTime.Now.ToString().Replace('/', '-').Replace(':', '.'). Existe uma maneira melhor de fazer isso?
Existem os seguintes especificadores de formato personalizado y (ano), M (mês), d (dia), h (hora 12), H (hora 24), m (minuto), s (segundo), f (segunda fração), F (segunda fração, zeros à direita são aparados), t (PM ou AM) ez (fuso horário).
Com Método de Extensão
Uso:
string result ="myfile.txt".AppendTimeStamp();//myfile20130604234625642.txt
Eu adicionei Path.GetDirectoryName(fileName)para obter o caminho completo para o arquivo. Em seguida, substituído string.Concat()com Path.Combine()obter o nome do arquivo completo.
Gilu
17
Eu prefiro usar:
string result ="myFile_"+DateTime.Now.ToFileTime()+".txt";
O que ToFileTime () faz?
Converte o valor do objeto DateTime atual em uma hora de arquivo do Windows.
public long ToFileTime()
A hora do arquivo do Windows é um valor de 64 bits que representa o número de intervalos de 100 nanossegundos decorridos desde as 12h00 à meia-noite de 1º de janeiro de 1601 AD (CE), Horário Universal Coordenado (UTC). O Windows usa um tempo de arquivo para registrar quando um aplicativo cria, acessa ou grava em um arquivo.
Talvez acrescentar DateTime.Now.Ticks, em vez disso, seja um pouco mais rápido, pois você não criará 3 strings e o valor dos ticks sempre será único também.
esta resposta da forma como você obtém o carimbo de data / hora !. anexá-lo a um arquivo usando a classe Path e a manipulação de strings não é um problema. esta é apenas uma alternativa para DateTime.ToString Method (String) ou string.Format ("{0: aaaa-MM-dd_hh-mm-ss-tt}", DateTime.Now);
Para Data e hora atuais como o nome de um arquivo no sistema de arquivos. Agora chame o método string.Format e combine-o com DateTime.Now, para um método que produza a string correta com base na data e 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 obter o caminho completo para o arquivo. Em seguida, substituídostring.Concat()
comPath.Combine()
obter o nome do arquivo completo.Eu prefiro usar:
O que ToFileTime () faz?
Fonte: documentação do MSDN - Método DateTime.ToFileTime
fonte
Talvez acrescentar
DateTime.Now.Ticks
, em vez disso, seja um pouco mais rápido, pois você não criará 3 strings e o valor dos ticks sempre será único também.fonte
você pode usar:
fonte
Você pode usar a seguir:
fonte
Para Data e hora atuais como o nome de um arquivo no sistema de arquivos. Agora chame o método string.Format e combine-o com DateTime.Now, para um método que produza a string correta com base na data e hora.
Resultado :
fonte