Tag: filesystemwatcher

使用FileSystemWatcher类来记录正在进行更改的用户

我有一个控制台应用程序,用于检查文件系统上发生的更改。 我试图找出是否有可能获得正在进行更改的个人的用户名?

FileSystemWatcher InternalBufferOverflow

当我试图监视网络路径上的文件夹(DFS – 分布式文件系统)时,我收到exceptionSystem.IO.Internal.BufferOverflowException:一次到多个更改。 当FileSystemWatcher监视不使用此文件系统的本地/网络路径时,它可以正常工作。 我能够从本地路径上的1000+文件中获取一个事件,而我没有得到BufferOverflowexception,但是当我将文件复制到DFS上的文件夹时,我甚至无法从一个文件中获取事件(为了澄清这一点,我收到了错误事件…)。 我已经尝试过设置: fileSystemWatcher.InternalBufferSize = 65536; 我不确定这对你有帮助,但路径看起来像这样: \\corpnet\cloud\\Network\testFolder\myFolderToMonitor 编辑:1我不知道为什么路径中有两个双斜杠。 我可以监控没有问题的文件夹,直到\ corpnet \ cloud路径。 一旦我尝试监视任何开始的文件夹,我就会收到错误 …\\Network\… 你的任何提示都表示赞赏。 谢谢

FileSystemWatcher不监视Vista中的本地用户文件夹或临时Internet文件夹(64位)

我写了一个测试程序来监控我的Picture文件夹,它指向同一用户的c:\ users [用户名] \图片和临时互联网文件文件夹。 如果我将文件夹更改为d:\ persona_pics等其他位置,这个程序可以正常工作。 当我将上述文件夹设置为监视时,不知道为什么没有引发事件? 这是代码。 class Program { static void Main(string[] args) { //FileSystemWatcher myJpegFileWatcher = new FileSystemWatcher(@”C:\Users\[username]\AppData\Local\Microsoft\Windows\Temporary Internet Files\low\content.ie5\”); FileSystemWatcher myJpegFileWatcher = new FileSystemWatcher(@”C:\Users\[username]\Pictures\ “); myJpegFileWatcher.Filter = “*.jpg”; myJpegFileWatcher.Created += new FileSystemEventHandler(myJpegFileWatcher_Created); myJpegFileWatcher.Changed += new FileSystemEventHandler(myJpegFileWatcher_Changed); myJpegFileWatcher.IncludeSubdirectories = true; myJpegFileWatcher.NotifyFilter = NotifyFilters.CreationTime; myJpegFileWatcher.EnableRaisingEvents = true; Console.Read(); } static void myJpegFileWatcher_Changed(object sender, […]

当许多文件同时添加到目录时,FileSystemWatcher无法正常工作

当许多文件同时添加到目录时,FileSystemWatcher无法正常工作…… Watcher根本找不到目录中的所有文件 – 只有当文件一个接一个地放在文件夹中时 – 而不是同时将大量文件复制到文件夹中… Threads的创建是问题的解决方案还是有另一种方法来处理问题?

Filesystemwatcher双重条目

我创建了一个小的winforms应用程序来监视某个文件夹中的新pdf文件,如果在particulair文件夹中创建了一个新的pdf文件,它将把它复制到另一个位置。 我遇到的问题是filesystemwatcher在我的列表框中创建了两个/多个条目,我该如何解决这个问题? namespace Scanmonitor { public partial class Form1 : Form { FileSystemWatcher watcher = new FileSystemWatcher(); DateTime lastRead = DateTime.MinValue; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { FileWatch(); } public void FileWatch() { watcher.Path = @”C:\Scanner”; watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.LastWrite; watcher.Filter = “*.pdf”; watcher.Changed += new […]

为什么我在尝试从正在写入的文件中读取时遇到未处理的exception:System.IO.IOException?

我有两个C#应用程序,一个是逐行读取文件(文件A)并将其内容写入另一个文件(文件B)。 第二个应用程序使用文件B的FileSystemWatcher查看它何时更新,并报告差异是程序启动时和文件更改之间的行号。 这就是我现在要做的所有事情,最终我想要读取上次读取文件和当前读取之间的界限,但直到我可以得到保持的线差。 我对应用程序1的代码是; static void Main(string[] args) { String line; StreamReader sr = new StreamReader(“f:\\watch\\input.txt”); FileStream fs = new FileStream(“f:\\watch\\Chat.log”, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); StreamWriter sw = new StreamWriter(fs); while ((line = sr.ReadLine()) != null) { sw.WriteLine(line); Thread.Sleep(200); Console.WriteLine(line); sw.Flush(); } sw.Close(); sr.Close(); } 我对应用程序2的代码是; public static int lines = 0; public static void Main() […]

FilersystemWatcher在模拟用户下运行

我有一个c#winform应用程序,它在本地帐户下运行但需要监视域上的文件夹。 我使用稍微修改过的代码从这里复制文件,并且工作正常。 可以使用类似的代码与FileSystemWatcher设置模拟,以便我可以监控域上的文件夹吗?

单声道下的FileSystemWatcher – 观察子目录

我有个问题。 我在FileSystemWatcher上编写了一个包装器,用于检测根文件夹及其所有子文件夹中的更改。 没有什么花哨: FileSystemWatcher watcher = new FileSystemWatcher (); watcher.Path = this.Root; watcher.IncludeSubdirectories = true; watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.LastAccess | NotifyFilters.DirectoryName | NotifyFilters.FileName; watcher.Changed += new FileSystemEventHandler (watcher_Changed); watcher.Deleted += new FileSystemEventHandler (watcher_Deleted); watcher.Created += new FileSystemEventHandler (watcher_Created); watcher.Renamed += new RenamedEventHandler (watcher_Renamed); watcher.EnableRaisingEvents = true; 在.NET中,在Windows下,它就像一个魅力。 但是当我将代码移植到mono并在OSX下运行代码时,它只能在根文件夹中正常工作。 我现在注意到的问题: 在观察者启动时,根目录下已存在的文件夹内的操作不会引发事件 我通过EventArgs.FullPath属性获得的路径不正确(当我将文件复制到path_to_root / some / […]

如何获取使用FileSystemWatcher创建的新文件的名称?

我正在使用FileSystemWatcher监视文件夹。 如果我将文件下载到那里,如何获取该下载文件的名称? 例如,如果我下载了一个名为TextFile.txt的文件,我将如何将其作为字符串返回? 我假设这将适用于所有四个触发器(更改,创建,删除,重命名)? 我将IncludeSubdirectories设置为true,因此它应该能够做到这一点。

我是否需要保留对FileSystemWatcher的引用?

我正在使用FileSystemWatcher (在ASP.NET Web应用程序中)监视文件以进行更改。 观察者在Singleton类的构造函数中设置,例如: private SingletonConstructor() { var fileToWatch = “{absolute path to file}”; var fsw = new FileSystemWatcher( Path.GetDirectoryName(fileToWatch), Path.GetFileName(fileToWatch)); fsw.Changed += OnFileChanged; fsw.EnableRaisingEvents = true; } private void OnFileChanged(object sender, FileSystemEventArgs e) { // process file… } 到目前为止一切正常。 但我的问题是: 使用局部变量( var fsw )设置观察者是否安全? 或者我应该在私人领域中保留它的引用,以防止它被垃圾收集?