Я создал программу для просмотра файла блокнота с помощью filewatcher .. всякий раз, когда текст в файле изменяется. Я создал программу .exe для запуска ... .exe-программу также работает нормально .. Но он работает дважды ... Я искал Stackoverflow и другие веб-сайты .. но я не мог понять, где я поступил не так. Frnds Plz помогите мне в очищении моей ошибки .. Я знаю, что этот вопрос задавался много раз .. Но так как им новое для этого в C# я не мог понять .. Plz помочь мне frnds ..Процесс запускается дважды в событии OnChanged
public Form1()
{
InitializeComponent();
}
private void filewatcher()
{
path = txtBoxPath.Text;
FileSystemWatcher fileSystemWatcher1 = new FileSystemWatcher();
fileSystemWatcher1.Path = path;
fileSystemWatcher1.Filter = "*.txt";
fileSystemWatcher1.NotifyFilter = NotifyFilters.LastWrite;
fileSystemWatcher1.Changed += new FileSystemEventHandler(OnChanged);
fileSystemWatcher1.EnableRaisingEvents = true;
}
private void tbtextcopy()
{
Clipboard.SetText(File.ReadAllText(path));
this.textBox1.Text = Clipboard.GetText().ToString();
}
private void OnChanged(object sender, FileSystemEventArgs e)
{
try
{
ProcessStartInfo PSI = new ProcessStartInfo(@"C:\Program Files\Ranjhasoft\Icon Changer\Icon changer.exe");
Process P = Process.Start(PSI);
P.WaitForExit();
P.Close();
}
finally
{
fileSystemWatcher1.EnableRaisingEvents = false;
}
}
private void BrowserBtn_Click(object sender, EventArgs e)
{
FolderBrowserDialog dlg = new FolderBrowserDialog();
dlg.SelectedPath = this.txtBoxPath.Text;
DialogResult result = dlg.ShowDialog();
if (result == DialogResult.OK)
{
if (!string.IsNullOrEmpty(dlg.SelectedPath))
{
this.txtBoxPath.Text = dlg.SelectedPath;
}
}
if (string.IsNullOrEmpty(this.txtBoxPath.Text))
{
this.txtBoxPath.Text = appDataFolder;
}
if (!Directory.Exists(path))
{
MessageBox.Show("Specified folder does not exist");
}
}
private void txtBoxPath_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.txtBoxPath.Text))
{
this.filewatcher();
}
}
}
}
возможно дубликат [FileSystemWatcher Changed события повышались дважды] (http://stackoverflow.com/questions/1764809/filesystemwatcher-changed-event-is-raised-twice) – sstan
так @sstan я должен использовать этот fileSystemWatcher1.EnableRaisingEvents = true; в команде try вместо filewatcher() – Kopika
Я тоже прочитал эту статью. Я хочу знать, где «я» пошло не так ... – Kopika