Tag: filesystemwatcher

System.IO.FileSystemWatcher监视networking服务器文件夹 – 性能注意事项

我想观看networking服务器上的文件夹树进行更改。 这些文件都有一个特定的扩展名。 树中有大约200个文件夹,大约1200个文件和我正在观看的扩展名。 我不能写一个服务在服务器上运行(禁止!),所以解决scheme必须是本地的客户端。 及时性并不特别重要。 我可以忍受延迟一分钟或更长时间的通知。 我正在观看创build,删除,重命名和更改。 使用.NET System.IO.fileSystemWatcher会在服务器上创build多大的负载? 10个独立的观察者如何减less正在观看的文件夹/文件的数量? (从700个文件夹减less到200个,从5500个文件减less到1200个)更多的networkingstream量,而不是更less? 我的想法是在服务器上重新安排观看的文件在1树下。 我可能并不总是有这个选项,所以观察者的团队。 我想另一种解决scheme是定期检查,如果FSW在服务器上创build一个不适当的负载,或者如果它不适用于一大堆SysAdmintypes的原因。 有一个更好的方法吗?

在C#中的单个文件上使用FileSystemWatcher

当我尝试将观察者path设置为如下所示的单个文件时: watcher.Path = filePath1; 我得到的错误: The directory name C:\Cromos 3.0\repository\diagnostics\dwm01_2011_06_13__09_03.LXD is invalid. 你只能设置path到文件夹目录吗?

如何为多个文件types设置FileSystemWatcher的filter?

在任何地方,我发现这两行代码用于在提供的示例中为文件系统监视器设置filter。 FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Filter = "*.txt"; //or watcher.Filter = "*.*"; 但是我希望我的监视器能监视更多的文件types,但不是全部。 我怎样才能做到这一点: //watcher.Filter = "*.txt" | "*.doc" | "*.docx" | "*.xls" | "*.xlsx"; 我试过这些: watcher.Filter = "*.txt|*.doc|*.docx|*.xls|*.xlsx"; // and watcher.Filter = "*.txt;*.doc;*.docx;*.xls;*.xlsx*"; 两者都没有工作。 这只是基础知识,但我很想念它。 谢谢..

FileSystemWatcher更改事件被引发两次

我有一个应用程序,我正在寻找一个文本文件,如果有任何更改的文件,我正在使用OnChanged事件处理程序来处理该事件。 我正在使用NotifyFilters.LastWriteTime但事件仍然发生两次。 这是代码。 public void Initialize() { FileSystemWatcher _fileWatcher = new FileSystemWatcher(); _fileWatcher.Path = "C:\\Folder"; _fileWatcher.NotifyFilter = NotifyFilters.LastWrite; _fileWatcher.Filter = "Version.txt"; _fileWatcher.Changed += new FileSystemEventHandler(OnChanged); _fileWatcher.EnableRaisingEvents = true; } private void OnChanged(object source, FileSystemEventArgs e) { ……. } 在我的情况下, OnChanged被调用两次,当我更改文本文件version.txt并保存它。

使用FileSystemWatcher来监视一个目录

我正在使用Windows窗体应用程序来监视一个目录,并将其中放入的文件移动到另一个目录。 目前它会将文件复制到另一个目录,但是当添加另一个文件时,它只会以没有错误信息结束。 有时它会在第三个文件结束之前复制两个文件。 这是因为我使用Windows窗体应用程序而不是控制台应用程序? 有没有办法阻止程序结束并继续观看目录? private void watch() { FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = path; watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; watcher.Filter = "*.*"; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; } private void OnChanged(object source, FileSystemEventArgs e) { //Copies file to another directory. }

找出用户名(谁)在C#中修改文件

我正在使用FileSystemWatcher来监视一个文件夹。 但是当目录中发生一些事件时,我不知道如何search谁对这个文件产生影响。 我试图使用EventLog。 它只是不能工作。 还有另一种方法吗?

将多个文件添加到目录时,FileSystemWatcher出现文件访问错误

当多个文件被放入监视的目录时,我遇到了FileSystemWatcher的问题。 我想parsing文件,只要它被放置在目录中。 通常情况下,第一个文件parsing正常,但将第二个文件添加到目录会导致访问问题。 偶尔,第一个文件甚至不parsing。 只有一个应用程序正在运行并看着这个目录。 最终,这个过程将在多台机器上运行,他们将会看到一个共享目录,但只有一台服务器可以parsing每个文件,因为数据被导入到数据库中,并且没有主键。 这是FileSystemWatcher代码: public void Run() { FileSystemWatcher watcher = new FileSystemWatcher("C:\\temp"); watcher.NotifyFilter = NotifyFilters.FileName; watcher.Filter = "*.txt"; watcher.Created += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); } 然后parsing该文件的方法: private void OnChanged(object source, FileSystemEventArgs e) { string line = null; try { using (FileStream fs = new FileStream(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.None)) { […]

文件更改时的通知?

在光盘上修改文件时,是否有某种机制可以通知我(用C#)?

FileSystemWatcher vs轮询来监视文件的变化

我需要设置一个应用程序来监视目录中创建的文件,无论是本地还是网络驱动器。 FileSystemWatcher或者定时器上的轮询将是最好的选择。 过去我使用过这两种方法,但没有广泛使用。 两种方法都有哪些问题(性能,可靠性等)?