我正在使用C#
在VS2010
中创建一个简单的winforms应用程序。我的winforms设计包含一个FileSystemWatcher
,它在创建文件时会激活一堆代码。
我的问题是,FileSystemWatcher
的路径需要在程序运行之前定义,因为它并不总是相同。
我有一个名为startPath的字符串,我想使用它,但似乎我不能将它添加到我设计中FileSystemWatcher
属性中的“path”字段。
如果我编辑了form1.designer.cs
,我就可以使它工作了,但是我很快就知道,即使编辑了表单的不同组件,这些代码也会被重新生成!
正如您可能已经猜到的那样,我仍然非常学习 C#.net
(约一周),我绝不是经验丰富的!如果我错过了一些愚蠢的东西,请指出来!
答案 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);