2011-05-07 55 views
0

我在做窗口服務,我在基於數據庫的一些細節在目標路徑中生成txt文件,但我有一個問題,該服務運行得太快!如何附加這個hhmmss問題

我得到相同的文件名在所需的秒變化的地方,以便我可以避免在那裏重複。

代碼:

using (transactionscope scope = new transactionscope) 
{ 
    string nowtime = datetime.now.today.tostring(HHMMss) // it was working fine 
} 

文件應該是通過生成特定的文件命名約定!例如:hhmmss >>>沒有毫秒 任何一個可以給我獨特的想法如何面對這部分?

+1

就在旁邊,但如果您使用時間戳來避免重複,則可能需要重新考慮解決方案。如果您的服務運行時間超過24小時,或者夏令時開始,或者某人更改了系統上的時間,則最終會出現重複項。爲什麼不使用GUID來唯一標識文件? – Johnv2020 2011-05-07 07:15:58

回答

3

您可以添加毫秒文件名:

string nowtime = datetime.Now.Today.ToString("HHmmssfff"); 

Custom Date and Time Format Strings

你發佈的代碼的幾個注意事項:

  1. MM是幾個月,而不是幾分鐘。你應該使用小寫毫米。
  2. ToString需要的參數是一個字符串。
  3. 您的代碼無法編譯,因爲它沒有正確的裝箱。請使用可以在將來直接使用的代碼

更新:

看到你使用這種格式,唯一的選擇就是「慢下來」的服務。

添加:(→循環結束)

Thread.Wait(1000); 

在正確的地方可以做的伎倆。

或者,如果您仍然在同一秒內,則可以更改代碼以附加到文件。

+0

不,我們不能。文件應該由特定的文件命名約定生成!例如:hhmmss >>> no millisecond – pubby 2011-05-07 04:41:50

+2

@pubby - 你爲什麼不在你的問題中發佈?這不是我們能猜到的。請編輯您的問題並添加這個非常重要的細節。 – Oded 2011-05-07 04:43:45

+0

我懷疑... !!!我們可以在線上接力!我的意思是它會提供確切的輸出要求! – pubby 2011-05-07 04:51:03

0

如果您在說您要創建多個具有相同名稱的文件(同一秒中有多個文件),那麼我會將時間縮短到毫秒。你可以這樣做:

DateTime.Today.ToString("HHmmssfff"); 

fff表示小數點後三位(千分之一秒)。

+1

'MM'是針對montns的。 – Oded 2011-05-07 04:42:47

+0

沒錯。謝謝 - 修復它。 – 2011-05-07 04:43:50