在FileSystemWatcher中为“Path”属性使用预定义的字符串

时间:2012-03-26 09:24:16

标签: c# winforms filesystemwatcher

我正在使用C#VS2010中创建一个简单的winforms应用程序。我的winforms设计包含一个FileSystemWatcher,它在创建文件时会激活一堆代码。

我的问题是,FileSystemWatcher的路径需要在程序运行之前定义,因为它并不总是相同。

我有一个名为startPath的字符串,我想使用它,但似乎我不能将它添加到我设计中FileSystemWatcher属性中的“path”字段。

如果我编辑了form1.designer.cs,我就可以使它工作了,但是我很快就知道,即使编辑了表单的不同组件,这些代码也会被重新生成!

正如您可能已经猜到的那样,我仍然非常学习 C#.net(约一周),我绝不是经验丰富的!如果我错过了一些愚蠢的东西,请指出来!

3 个答案:

答案 0 :(得分:0)

FileSystemWatcher有一个path属性,可用于在初始化FileSystemWatcher对象后更改路径。否则,如果使用构造函数设置要监视的路径,则必须重新设置观察程序。

FileSystemWatcher.Path Property

存储路径本身可以通过@leppie

提到的应用程序设置轻松完成

设置参考:
Application Settings Overview
Using Settings in C#
Saving User Settings in Winform Application

答案 1 :(得分:0)

我在运行时将用户定义的字符串指定为路径,如下所示:

在我的form1.cs中:

protected override void  OnActivated(EventArgs e)
    {
        base.OnActivated(e);
            fileSystemWatcher1.Path = inputPath;
    }

认为这是一种可行的方式(它似乎正在工作!),字符串“inputPath”之前通过从我的配置文件中获取相应的设置来定义。如果我将它设置为settings.cs,它似乎并不想玩得很好。

答案 2 :(得分:-1)

将所需路径添加到app.config文件的appSettings部分:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="watcherPath" value="\\myPC\myShare\myFolder\" />  
  </appSettings>
</configuration>

然后,您可以使用代码访问此值,并将其分配给FileWatcher路径:

string myPath = System.Configuration.ConfigurationManager.AppSettings["watcherPath"];
FileSystemWatcher fsw = new FileSystemWatcher(myPath);