我正在制作我自己的试用模式,我想知道是否有办法检查文本文件中的时间信息是否与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 :(得分: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 :(得分: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");
}
答案 2 :(得分:-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.");
}
}
}