有時候,我們需要把一些資訊儲存在配置檔案裡面,又希望如果修改了配置檔案,程式可以自動生效。
這裡可以用檔案監聽來實現。
使用了c#提供的filesystemwatcher
先看結果:
由於每次修改檔案都會出發兩次提示,據說是第一次修改檔案內容,第二次修改檔案時間,但是我們只需要處理一次就可以了。
由於我對時間不是太敏感,所以我加了乙個定時器進行過濾,每1秒處理一次檔案內容修改。這樣可以把連續兩次的觸發合併到一次處理。
**如下:
using system;
using system.io;
using system.threading;
namespace test
static timer m_timer = null;
static bool m_changed = false;
static object m_lockchanged = new object();
static datetime m_changedt = datetime.now;
static string m_strpath = string.empty;
public static bool bchanged
}set}}
public static datetime changedt
}set}}
private static void watcherstrat(string path, string filter)
;watcher.changed += new filesystemeventhandler(onprocess);
watcher.created += new filesystemeventhandler(onprocess);
watcher.deleted += new filesystemeventhandler(onprocess);
watcher.renamed += new renamedeventhandler(onrenamed);
watcher.enableraisingevents = true;
m_timer = new system.threading.timer((o) =>
catch(exception ex)}}
}, 0, 1, 1000);
}private static void onprocess(object source, filesystemeventargs e)
else if (e.changetype == watcherchangetypes.changed)
else if (e.changetype == watcherchangetypes.deleted)
}private static void oncreated(object source, filesystemeventargs e)
private static void onchanged(object source, filesystemeventargs e)
private static void ondeleted(object source, filesystemeventargs e)
private static void onrenamed(object source, renamedeventargs e)}}
Linux之了解inotify監聽檔案變化機制
在日常的運維過程中,經常需要備份某些檔案,或者對系統的某些檔案進行監控,比如重要的配置檔案等。如果需要作到實時同步或者監控,就需要使用核心的inotify機制 inotify 是基於inode級別的檔案系統監控技術,是一種強大的 細粒度的 非同步的機制,它滿足各種各樣的檔案監控需要,不僅限於安全和效...
監聽描述檔案
同樣的如果關閉listener程序並不會影響已經存在的資料庫連線。listener.ora listener 程序的配置檔案,oracle根據它來監聽服務 listener description list description address list address protocol ipc ...
Linux inotify監聽檔案狀態
inotify 是乙個 linux特性,它監控檔案系統操作,比如讀取 寫入和建立。inotify 反應靈敏,用法非常簡單,並且比 cron 任務的繁忙輪詢高效得多。學習如何將 inotify 整合到您的應用程式中,並發現一組可用來進一步自動化系統治理的命令列工具。通俗來說,inotify可以監控檔案...