C 之檔案監聽

2021-09-03 02:58:07 字數 1759 閱讀 4840

有時候,我們需要把一些資訊儲存在配置檔案裡面,又希望如果修改了配置檔案,程式可以自動生效。

這裡可以用檔案監聽來實現。

使用了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可以監控檔案...