我使用下面的代码使用FileSystemWatcher类在本地系统上观看文件。我想做的是只查看我在关键字中指定的文件名(可以是逗号分隔的字符串或txt文件)。 请指导我正确的方向。
FileSystemWatcher objWatcher = new FileSystemWatcher();
objWatcher.Filter = "*.*";
objWatcher.Changed += new FileSystemEventHandler(OnChanged);
private static void OnChanged(object source, FileSystemEventArgs e)
{
string strFileExt = getFileExt(e.FullPath);
}
谢谢&此致
答案 0 :(得分:1)
虽然FileSystemWatcher不支持,但您可以通过在引发事件后过滤文件名来获得该功能。您将无法使用" 等过滤器。"但是,例如,如果你想要所有xml和txt文件,你可以做{" .xml"," .txt"}
FileSystemWatcher objWatcher = new FileSystemWatcher();
objWatcher.Changed += new FileSystemEventHandler(OnChanged);
string[] filters = new string[] { "test", "blah", ".exe"}; //this needs to be a member of the class so it can be accessed from the Changed event
private static void OnChanged(object source, FileSystemEventArgs e)
{
if (filters.Any(e.FullPath).Contains))
{
string strFileExt = getFileExt(e.FullPath);
}
}
这应该让您了解如何做到这一点。
答案 1 :(得分:0)
FileSystemWatcher
组件提供了Path
和Filter
属性,用于标识您要观看的文件。您可以在Filter
属性中使用通配符来查看多个文件,但除此之外,没有任何内置功能可以同时监视任意文件集。来自Filter
property documentation:不支持使用多个过滤器,例如“ .txt | .doc”。
您可能需要为列表中的每个项目创建一个不同的FileSystemWatcher
。