找到一个或多个文件添加到文件夹时的最佳方法

时间:2016-04-18 19:34:27

标签: c# filesystemwatcher

当一个或多个文件被添加到文件夹" SentBox"时,我的应用程序将检测到它并逐个进行,这是我的代码:

public void SetUp_Timers()
{

    MsgHandler.Interval = new TimeSpan(0, 0, 1);
    MsgHandler.Tick += MsgHandler_Tick;
    MsgHandler.Start();
}

private void MsgHandler_Tick(object sender, EventArgs e)
{

    if (Directory.GetFiles(Path_SentBox).Count() > 0)
    {
        string pt = Directory.GetFiles(Path_SentBox)[0];
        Message ms = JsonConvert.DeserializeObject<Message>(Security_ReadAllText(pt));
        ProceedMsg(ms, pt);
    }
}

public async void ProceedMsg(Message msg, string msgpath)
{

    MsgHandler.Stop();

    //more code....

    File.Delete(msgpath);
    MsgHandler.Start();
}

到目前为止,这从未给我一个意想不到的结果。 最近,我找到了一个名为FileSystemWatcher的课程。根据他们所说的herehere,该类用于监视指定目录中的更改。

我的问题:

  1. 是否可以通过FileSystemWatcher实现我的目标?
  2. 如果是,哪一个更好?
  3. 并且,有比这两个更好的方法吗?
  4. 编辑:

    我不确定你是否需要这个:

    public void SendMessage(Message msg)
    {
    
        string fn = msg.Type + "_" + FileNameFix(DateTime.Now.ToShortDateString() + DateTime.Now.ToLongTimeString() + Path.GetRandomFileName().Replace(".", "") + ".kmsg");
        Security_WriteAllText(Path_SentBox + "\\" + fn, JsonConvert.SerializeObject(msg));
    }
    

0 个答案:

没有答案