2

FileWatcher を作成しましたが、FileWatcher が計画どおりに機能せず、立ち往生しています。

2 つのマップで動作するファイルウォッチャーが必要です。

私が自分で作ったコードは、彼が選ぶべきだと言っている道を選びません。

私のアプリケーションでは、その場所にあるファイルで何が起こっているかを確認する必要がある場所を参照する必要があります。

私の問題は次のとおりです。閲覧すると、選択したマップが表示されません。

私が道を選ぶ前に、彼はすでに見ていると思います。

助けてください。

(私は初めてC#を使い始めました)

誰かが私を助けたいと思っているが、十分な情報を持っていない場合。

(実際には他に 2 つのファイルがありますが、これが一番よく見えました)

スカイプで私を追加: メイベロコ

コード:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
  public partial class Form1 : Form
  {     

  public Form1()

  {
  InitializeComponent();
  }

  private void Form1_Load(object sender, EventArgs e)
  {

  }      

  private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
  {


  }

  private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
  {
  listBox1.Items.Add("File Created> " + e.FullPath + " -Date:" + DateTime.Now);
  }

  private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
  {
  listBox1.Items.Add("File Changed> " + e.FullPath + " -Date:" + DateTime.Now);
  }
  private void fileSystemWatcher1_Deleted(object sender, System.IO.FileSystemEventArgs e)
  {

  listBox1.Items.Add("File Deleted> " + e.FullPath + " -Date:" + DateTime.Now);

  }

  private void fileSystemWatcher1_Renamed(object sender, System.IO.RenamedEventArgs e)
  {

  listBox1.Items.Add("File Renamed> " + e.FullPath + " -Date:" + DateTime.Now);

  }

  private void fileSystemWatcher2_Changed(object sender, System.IO.FileSystemEventArgs e)
  {
  listBox1.Items.Add("File Changed> " + e.FullPath + " -Date:" + DateTime.Now);

  }

  private void fileSystemWatcher2_Created(object sender, System.IO.FileSystemEventArgs e)
  {
  listBox1.Items.Add("File Created> " + e.FullPath + " -Date:" + DateTime.Now);
  }

  private void fileSystemWatcher2_Deleted(object sender, System.IO.FileSystemEventArgs e)
  {
  listBox1.Items.Add("File Deleted> " + e.FullPath + " -Date:" + DateTime.Now);
  }

  private void fileSystemWatcher2_Renamed(object sender, System.IO.RenamedEventArgs e)
  {
  listBox1.Items.Add("File Renamed> " + e.FullPath + " -Date:" + DateTime.Now);
  }

  private void button2_Click(object sender, EventArgs e)
  {
  //
  DialogResult resDialog = dlgOpenDir.ShowDialog();
  if (resDialog.ToString() == "OK")
  {
  textBox1.Text = dlgOpenDir.SelectedPath;
  }
  }

  private void button3_Click(object sender, EventArgs e)
  {
  DialogResult resDialog = dlgOpenDir.ShowDialog();
  if (resDialog.ToString() == "OK")
  {
  textBox2.Text = dlgOpenDir.SelectedPath;
  }
  }    

  }
}

ありがとう

4

1 に答える 1

1

最初の問題は、Pathof を設定していないことです。fileSystemWatcher1そのため、ボタンのクリックの 1 つで、パスを取得した後、次のようにします。

fileSystemWatcher1.Path = dlgOpenDir.SelectedPath;

ただし、次の問題は、1 つを使用して2 つのFileSystemWatcherパスを監視することです。これは実行できません。両方を監視するために 2 つ目のパスが必要になります。ただし、両方が同じイベント ハンドラーを使用する可能性があります。したがって、2 つ目のボタンを作成したら、まだ使用していない他のボタンをクリックして、これを追加します。

fileSystemWatcher2.Path = dlgOpenDir.SelectedPath;
于 2013-06-06T12:40:22.067 に答える