これは私が以前質問した質問に適用されます。私はファイルを監視し、ファイルの変更が止まった場合に警告するアプリケーションを作成しようとしています。誰かがファイルサイズをチェックし、Windowsサービスでタイマーを使用することを推奨しました。私は彼らのアドバイスをしましたが、私はWindowsサービスにはあまりよくありません。私は作成した2つのファイルのファイル比較をしようとしています。以下は、私が把握することはできませんがtimer_elapsed方法でS1を参照する方法であるコードC#ファイルの監視
public partial class Service1 : ServiceBase
{
Timer timer1 = new Timer();
string filePath = @"C:\Users\Test\Desktop\New folder\Test.txt";
string logPath = @"C:\Users\Test\Desktop\New folder\Log.txt";
string newLog = @"C:\Users\Test\Desktop\New folder\Log1.txt";
public Service1()
{
InitializeComponent();
}
public void OnStart(string[] args)
{
timer1.Elapsed += new ElapsedEventHandler(timer1_Elapsed);
timer1.Interval = 60000;
timer1.Enabled = true;
timer1.AutoReset = true;
timer1.Start();
FileInfo f = new FileInfo(filePath);
long s1 = f.Length;
using (StreamWriter file = new StreamWriter(logPath))
{
file.WriteLine(s1.ToString());
}
}
protected override void OnStop()
{
timer1.Enabled = false;
}
public void timer1_Elapsed(object sender, ElapsedEventArgs e)
{
FileInfo f = new FileInfo(filePath);
long s2 = f.Length;
using (StreamWriter file = new StreamWriter(newLog))
{
file.WriteLine(s2.ToString());
}
}
}
です。私はそれを世界的に宣言しようとしましたが、うまくいかないでしょう。私はちょうどタイマー経過メソッドでこれを行うことができるようにしたいです。
if (s1 == s2)
{
//send email
}
else
{
//don't do anything
}
アドバイスをいただければ幸いです。
?あなたがそれを試みたとき、正確に 'うまくいかなかったのは何ですか? –
正しい。エラーは、 "フィールド初期化子が非静的なフィールド、メソッド、またはプロパティを参照できませんでした。" – Matt
ファイルが成長を停止したときとファイルの成長が一時停止したときを判断するロジックは何ですか? – JohnFx