0

これはコードです:

private void timer2_Tick(object sender, EventArgs e)
        {
            timerCount += 1;
            TimerCount.Text = TimeSpan.FromSeconds(timerCount).ToString();
            TimerCount.Visible = true;
            if (File.Exists(Path.Combine(contentDirectory, "msinfo.nfo")))
            {
                string fileName = Path.Combine(contentDirectory, "msinfo.nfo");
                FileInfo f = new FileInfo(fileName);
                long s1 = f.Length;
                if (f.Length > s1)
                {
                    timer2.Enabled = false;
                    timer1.Enabled = true;
                }
            }
        }

ファイルが存在すると、そのサイズは約 1.5 MB ですが、数分後にファイルはほぼ 23 MB に更新されます。それで、ファイルがタイマー2を停止してタイマー1を開始する前よりも大きいかどうかを確認したいと思います。

しかし、この行: if (f.Length > s1) 論理的ではない

ファイルがそれよりも大きいかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

1

contentDirectory最後に観察されたサイズを格納するグローバル変数 (に使用しているものなど) に依存できます。サンプルコード:

public partial class Form1 : Form
{
    long timerCount = 0;
    string contentDirectory = "my directory";
    long lastSize = 0;
    double biggerThanRatio = 1.25;
    public Form1()
    {
        InitializeComponent();
    }

    private void timer2_Tick(object sender, EventArgs e)
    {
        timerCount += 1;
        TimerCount.Text = TimeSpan.FromSeconds(timerCount).ToString();
        TimerCount.Visible = true;
        if (File.Exists(Path.Combine(contentDirectory, "msinfo.nfo")))
        {
            string fileName = Path.Combine(contentDirectory, "msinfo.nfo");
            FileInfo f = new FileInfo(fileName);
            if (f.Length >= biggerThanRatio * lastSize && lastSize > 0)
            {
                timer2.Enabled = false;
                timer1.Enabled = true;
            }

            lastSize = f.Length;
        }
    }
}
于 2013-07-25T10:06:38.953 に答える