2012-03-26 29 views
1

我在C#中製作了一個簡單的winforms應用程序,其中VS2010。我的winforms設計包含一個FileSystemWatcher,它在創建文件時觸發一堆代碼。在FileSystemWatcher中爲「Path」屬性使用預定義的字符串

我的問題是FileSystemWatcher的路徑需要在程序運行之前定義,因爲它不總是相同的。

我有一個名爲startPath我想使用的字符串,但它會出現,我不能只是這個在我的設計FileSystemWatcher屬性添加到「路徑」字段中。

如果我編輯了我的form1.designer.cs,我能夠使它工作,但是我很快學會了即使編輯了窗體的不同組件也會重新生成代碼!

正如你可能已經猜到了,我仍然非常多學習C#.net(大約一個星期),而我從來沒有經歷過!如果我錯過了一些愚蠢的東西,請指出來!

+0

2個字:應用程序設置。 – leppie 2012-03-26 09:31:06

回答

0

FileSystemWatcher具有一個路徑屬性,可用於在FileSystemWatcher對象初始化後更改路徑。否則,如果使用構造函數設置要觀察的路徑,則必須重新設置觀察器。

FileSystemWatcher.Path Property

存儲路徑本身可以通過應用程序設置可以輕鬆完成由@leppie

參考的設置中提到:
Application Settings Overview
Using Settings in C#
Saving User Settings in Winform Application

+0

閱讀您關於FileSystemWatcher.Path的鏈接是真正幫助我的。 – Rich 2012-03-27 09:43:28

-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); 
+0

正確的路徑,錯誤的方式... – leppie 2012-03-26 09:35:49

+0

定義我的路徑並不是真正的問題,它找到一種方法確保用戶定義的路徑實際上在運行時被「分配」到我的FileSystemWatcher。你的方式沒有考慮到我的FileSystemWatcher是在自動生成的「form1.designer.cs」文件中初始化的。 (除非我錯過了一些東西!) – Rich 2012-03-27 09:41:22

0

我指派我用戶定義的字符串作爲運行時的路徑,如下所示:

在我Form1.cs中:

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

認爲這是做的一個確定的方式(這似乎是工作!),字符串「inputPath」是通過獲取相應的設置前面定義從我的配置文件中。如果我放置settings.cs,它似乎不想玩得很好。

相關問題