2010-04-21 156 views
1

我知道linux有可用於編的時間戳信息。 LANGS。這非常方便。Windows上的時間戳類似於Unix時間戳和文件操作

我開發一個程序,我需要追加日期時間到創建的文件。它應該是獨一無二的。

後來我想解析這些文件,但我只想解析最新的一個。

在* .nix系統中的時間戳等.net中是否有這樣的選項?

那裏有任何例子嗎?

謝謝。

回答

2

您可以使用DateTime結構的Ticks屬性。它與UNIX時間戳不兼容,但可用於返回表示日期和時間的長(Int64),精度爲百萬分之一秒。例如。

DateTime.Now.Ticks 

在寫這篇的時候返回您可以將蜱回一個DateTime在構造函數中的634074617762026300

值。例如。

DateTime date = new DateTime(634074617762026300); 
2

如果你想從文件中獲得時間戳,請看FileInfo類。如果你想在UNIX時間戳添加到文件(可能是文件名或如你所說,並在末尾),這個功能可以讓你在UNIX時間戳:基於

public static int UnixTimestamp() 
{ 
    var utcEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); 
    var utcNow = DateTime.UtcNow; 
    var span = utcNow - utcEpoch; 
    return (int)span.TotalSeconds; 
} 
2

「唯一」和文件名時間戳是矛盾的要求。當機器變得更快時,它會崩潰。當您的程序的更多實例運行時,嘗試檢查文件是否已經存在的變通辦法會崩潰。只有Path.GetTempFileName()可以保證一個完全唯一的名稱。使用FileInfo.CreationTimeUtc查找最後一個。

+0

有一個目錄,裏面有很多文件。我是否必須檢查每個文件,時間戳,並且像查找最小值或最大值一樣。還是有更簡單的方法來做到這一點?謝謝。 – DarthVader 2010-04-21 15:40:33

+0

@user:究竟有什麼難的呢? – 2010-04-21 15:50:08