【问题标题】:Using pre-defined string for "Path" attribute in FileSystemWatcher在 FileSystemWatcher 中为“Path”属性使用预定义字符串
【发布时间】:2012-03-26 09:24:15
【问题描述】:

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

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

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

如果我编辑了我的 form1.designer.cs,我就能让它工作,但我很快了解到,即使编辑了表单的不同组件,这段代码也会重新生成!

正如您可能已经猜到的那样,我仍然非常学习C#.net(大约一周),而且我还没有经验!如果我遗漏了一些愚蠢的东西,请指出!

【问题讨论】:

  • 2 个字:应用程序设置。

标签: c# winforms filesystemwatcher


【解决方案1】:

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

FileSystemWatcher.Path Property

存储路径本身可以通过@leppie 提到的应用程序设置轻松完成

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

【讨论】:

  • 阅读您关于 FileSystemWatcher.Path 的链接对我有很大帮助。
【解决方案2】:

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

在我的 form1.cs 中:

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

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

【讨论】:

    【解决方案3】:

    将所需的路径添加到 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);
    

    【讨论】:

    • 定义我的路径并不是真正的问题,它正在寻找一种方法来确保用户定义的路径在运行时实际上被“分配”给我的 FileSystemWatcher。您的方式没有考虑到我的 FileSystemWatcher 是在自动生成的“form1.designer.cs”文件中初始化的。 (除非我遗漏了什么!)
    猜你喜欢
    • 2015-01-19
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多