program tip

파일 이름에 타임 스탬프 추가

radiobox 2020. 7. 28. 08:22
반응형

파일 이름에 타임 스탬프 추가


동일한 디렉토리에 동일한 파일의 여러 버전을 갖고 싶은 여러 번이 문제가 발생했습니다. C #을 사용하여 수행 한 방식은 다음과 같이 파일 이름에 타임 스탬프를 추가하는 것 DateTime.Now.ToString().Replace('/', '-').Replace(':', '.')입니다. 더 좋은 방법이 있습니까?


DateTime.ToString 메서드 (문자열)를 사용할 수 있습니다.

DateTime.Now.ToString("yyyyMMddHHmmssfff")

또는 문자열.

string.Format("{0:yyyy-MM-dd_hh-mm-ss-fff}",DateTime.Now);

또는 보간 된 문자열

$"{DateTime.Now:yyyy-MM-dd_hh-mm-ss-fff}"

y (연도), M (월), d (일), h (시간 12), H (24 시간), m (분), s (초), f (두 번째 분수), F와 같은 사용자 지정 형식 지정자가 있습니다. (두 번째 분수, 후행 0이 잘림), t (PM 또는 AM) 및 z (시간대).

확장 방법

용법:

string result = "myfile.txt".AppendTimeStamp();
//myfile20130604234625642.txt

확장 방법

public static class MyExtensions
{
    public static string AppendTimeStamp(this string fileName)
    {
        return string.Concat(
            Path.GetFileNameWithoutExtension(fileName),
            DateTime.Now.ToString("yyyyMMddHHmmssfff"),
            Path.GetExtension(fileName)
            );
    }
}

나는 사용하는 것을 선호합니다 :

string result = "myFile_" + DateTime.Now.ToFileTime() + ".txt";

ToFileTime ()의 기능은 무엇입니까?

현재 DateTime 객체의 값을 Windows 파일 시간으로 변환합니다.

public long ToFileTime()

Windows 파일 시간은 1601 년 1 월 1 일 자정 (UTC) 협정 세계시 (UTC) 이후 경과 한 100 나노초 간격의 수를 나타내는 64 비트 값입니다. Windows는 파일 시간을 사용하여 응용 프로그램에서 파일을 만들거나 액세스하거나 쓸 때 기록합니다.

출처 : MSDN 설명서-DateTime.ToFileTime 메서드


아마도 DateTime.Now.Ticks대신에 추가 하는 것은 3 개의 문자열을 만들지 않고 틱 값도 항상 고유하기 때문에 조금 더 빠릅니다.


당신이 사용할 수있는:

Stopwatch.GetTimestamp();

대신 아래를 사용할 수 있습니다.

DateTime.Now.Ticks

참고 URL : https://stackoverflow.com/questions/7898392/append-timestamp-to-a-file-name

반응형