2013-05-10 43 views
-1

我正在製作自己的試用模式,並且想知道是否有方法檢查文本文件中的時間信息是否與Date.Today相同?如何創建簡單但功能強大的試用版

private void Trial() 
{ 
    DateTime saveNow = DateTime.Today; 
    DateTime expiryDate = DateTime.Today.AddDays(30); 
    string fileName = System.IO.Path.Combine(
     Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "trailexample.txt"); 

    if (!File.Exists(fileName)) 
    { 
     // Write the string to a file. 
     System.IO.StreamWriter file = new System.IO.StreamWriter(fileName); 
     file.WriteLine(saveNow); 
     file.WriteLine(expireDate); 
     file.Close(); 
    } 
    else if (File.Exists(fileName)) 
    { 
     var lastLine = File.ReadLines(fileName).Last(); 

     If (saveNow == LastLine) // This doesn't work of course but kinda the Idea. This is what I need help with. 
     { 
      messagebox.Show("Your trial is over"); 
     } 
    } 
} 
+0

我在這裏沒有看到問題。您是否嘗試將此網站用作博客?如果您只是想分享信息,則需要先發布問題,然後發佈解決方案作爲對該問題的答案。這個網站是一個「問答」網站,如果沒有問題就不會有答案。 [faq]有更多關於發佈自己問題答案的信息。如果您正在尋求幫助,則需要解釋您遇到的問題,並詢問您希望我們幫助您解決的具體問題。 – 2013-05-10 02:01:16

+0

是的,你是對的。任何版主都可以隨意刪除它。 我先問了一個問題,自己找到了一個解決方案,並認爲我可以像這樣與他們分享。 – Sneakybastardd 2013-05-10 02:03:17

+2

正如我所說的,[faq]解釋瞭如何發佈自己問題的答案。這不是。 :-)請回滾您的修改,並按照指導原則說明您應該正確提供答案。你甚至可以接受你自己的答案作爲正確答案(正如faq解釋的那樣)。謝謝。 – 2013-05-10 02:05:38

回答

0

我認爲你正在尋找DateTime.Parse()DateTime.Now

var lastLine = File.ReadLines(fileName).Last(); 
DateTime time = DateTime.Parse(lastLine); 
if(time.Date < DateTime.Now.Date) { 
    MessageBox.Show("Trial over"); 
} 
+0

也適用。我找到了另一個解檢查我的新答案。 – Sneakybastardd 2013-05-10 01:43:43

-1

好吧,我已經找到了解決方案,它的偉大工程。這裏,如果別人需要自己做試驗的應用程序,而無需使用的註冊信息或這樣的:

 private void Trial() 
     { 
      DateTime saveNow = DateTime.Today; 
      DateTime expiryDate = DateTime.Today.AddDays(30); 
      string fileName = System.IO.Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),"623231489374524.txt"); 
      var lastLine = File.ReadLines(fileName).Last(); 
      string Enddate = lastLine; 
      DateTime TrialOver = Convert.ToDateTime(Enddate); 
      if (!File.Exists(fileName)) 
      { 
       // Write the string to a file. 
       System.IO.StreamWriter file = new System.IO.StreamWriter(fileName); 
       file.WriteLine(saveNow); 
       file.WriteLine(expiryDate); 

       file.Close(); 
      } 
      else if (File.Exists(fileName)) 
      { 
       if (saveNow == TrialOver) 
{ 
    MessageBox.Show("Trial mode is over."); 
} 
      } 
     } 
4

爲什麼不這樣呢?你不需要有人可以修改的文本文件。只需讓程序在某處創建隱藏文件即可。它甚至不需要有任何東西。您只是檢查隱藏文件的創建日期。

  else if (File.Exists(fileName)); 
       { 
      DateTime creationdate = File.GetCreationTime(file); 
      DateComparisonResult comparedate = creationdate.CompareTo(saveNow); 

      If ((int) comparedate < 0) 
       { 
       messagebox.Show("Your trial is over"); 
       } 
     } 
+1

這是切肉刀。從來沒有想到這一點。但是,如果30天過去了,您必須進行比較。你的代碼只與今天的日期比較。 – Sneakybastardd 2013-05-10 01:57:15

+0

爲真。看看這個帖子。將30天添加到文件創建日期並檢查今天的日期:http://stackoverflow.com/questions/1665941/c-sharp-30-days-from-todays-date-for-the-c-sharp-datetime -gurus – 2013-05-10 02:23:45