桌面文件夹(或 C 盘)上的 FileSystemWatcher
FileSystemWatcher on folder on desktop (or C drive)
我正在创建一个检查文件夹中文件的 winforms 项目。它仅在将新文件放入文件夹时有效。我正在使用 FileSystemWatcher。在 D 盘上运行正常,但在 C 盘上运行失败。
- 我给了每个人对该文件夹的完全权限
- 我尝试通过单击一次发布它以获得完全信任应用程序。但它也失败了出版版
- 试图 运行 exe 文件和 visual studio 管理员身份。没有任何变化
- 尝试了绝对路径和额外的过滤器。
它不会引发任何错误。什么都不做。
非工作代码
string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
teklifwatcher.Path = desktop+"\XMLTeklif";
teklifwatcher.NotifyFilter = NotifyFilters.LastWrite;
teklifwatcher.Filter = "*.xml";
teklifwatcher.Changed += new FileSystemEventHandler(TeklifXML);
teklifwatcher.EnableRaisingEvents = true;
private void TeklifXML(object sender, FileSystemEventArgs e)
{
//dostuff
}
我自己解决了这个问题。我假设 filesystemwatcher 不能直接看 c: 驱动器文件。因为安全原因。
但是我们可以像使用任何其他应用程序一样使用 Program Files (X86) 文件夹。
遇到类似问题的任何人只需在程序 filex(x86) 的文件夹上使用 filesystemwatcher。并授予该文件夹的权限。瞧!有效
我正在创建一个检查文件夹中文件的 winforms 项目。它仅在将新文件放入文件夹时有效。我正在使用 FileSystemWatcher。在 D 盘上运行正常,但在 C 盘上运行失败。
- 我给了每个人对该文件夹的完全权限
- 我尝试通过单击一次发布它以获得完全信任应用程序。但它也失败了出版版
- 试图 运行 exe 文件和 visual studio 管理员身份。没有任何变化
- 尝试了绝对路径和额外的过滤器。
它不会引发任何错误。什么都不做。
非工作代码
string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
teklifwatcher.Path = desktop+"\XMLTeklif";
teklifwatcher.NotifyFilter = NotifyFilters.LastWrite;
teklifwatcher.Filter = "*.xml";
teklifwatcher.Changed += new FileSystemEventHandler(TeklifXML);
teklifwatcher.EnableRaisingEvents = true;
private void TeklifXML(object sender, FileSystemEventArgs e)
{
//dostuff
}
我自己解决了这个问题。我假设 filesystemwatcher 不能直接看 c: 驱动器文件。因为安全原因。 但是我们可以像使用任何其他应用程序一样使用 Program Files (X86) 文件夹。
遇到类似问题的任何人只需在程序 filex(x86) 的文件夹上使用 filesystemwatcher。并授予该文件夹的权限。瞧!有效