- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在我的 C# 应用程序(在 Windows 上运行)上使用 FileSystemWatcher
,以便在我的应用程序中更新我当前正在浏览的文件。当我浏览本地目录时它运行良好。当文件被重命名、删除或添加时,我会收到通知。但是例如,当我第一次重命名网络驱动器上的文件时,FileSystemWatcher
会通知我重命名操作,然后,当我重命名同一个文件或另一个文件时,FileSystemWatcher
通知我一个错误:
指定的服务器无法执行请求的操作
。
然后 FileSystemWatcher 不会通知我任何事情。
有时我可以在 FileSystemWatcher 不通知我之前重命名两次...
这是我的测试代码:
static void Main(string[] args)
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"N:\prive\defFolder";
watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite;
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
watcher.Created += new FileSystemEventHandler(watcher_Changed);
watcher.Deleted += new FileSystemEventHandler(watcher_Changed);
watcher.Renamed += new RenamedEventHandler(watcher_Renamed);
watcher.Error += new ErrorEventHandler(watcher_Error);
watcher.EnableRaisingEvents = true;
Console.Read();
watcher.Dispose();
}
static void watcher_Error(object sender, ErrorEventArgs e)
{
Console.WriteLine("error : " + e.GetException().Message);
}
static void watcher_Renamed(object sender, RenamedEventArgs e)
{
Console.WriteLine("rename success");
}
static void watcher_Changed(object sender, FileSystemEventArgs e)
{
Console.WriteLine("change success");
}
最佳答案
首先,远程共享的文件系统监控总是有些不可靠。您不应该依赖您的应用程序获取所有事件——事实上,我建议您提供一个备份轮询机制来检查您可能错过的更改。 GUI 中的刷新按钮可能是另一种选择,具体取决于您的应用。
也就是说,您的特定问题似乎并不少见。我用谷歌搜索了一下,发现了这些东西:
我的猜测是,这是与 Windows 结合使用的某些版本(或配置)的 Samba 的问题。 Linux 服务器上的 Samba 日志中是否有任何内容可以指出问题的原因?
作为即时解决方法,我建议您尝试以下操作:
EnableRaisingEvents
是否设置为 false
- 也许您可以将其设置为 true 以再次开始接收事件。关于c# - 在 Linux 上使用 Samba 的 FileSystemWatcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11306302/
我想通过 samba 共享在我的 linux 机器上编辑 Solr 配置文件。这些文件需要是 tomcat6:mygroup,但是当我通过 Windows 编辑文件时,它会将它们写入 myuser:m
我在用于开发的 FreeBSD 机器上有一个 samba 网络共享。 我在我的 WinXP 机器上将其设置为共享驱动器,并且运行良好。 但是,如果我重新启动 xp 盒,共享驱动器将无法访问,直到我单击
但是,据最近一次,国外科技网站w3techs的数据显示,截止到2010年7月28日,CentOS以高达31.6%的份额占据了Linux Web服务器的榜首,第二和第三分别是Debian和Red Ha
我已经设置了一个我正在修补的新 linux 盒子。我一直设置的一项是 samba,以便我可以轻松地将文件复制到服务器或从服务器复制文件。 我提出这个话题的原因是我无法从我的 Windows 机器浏览到
我正在尝试使用 samba 将用户导入 samba-tool 。 我可以添加具有任意属性的用户,假设测试用户有电话、职位等。从 samba wiki 我找到了以下片段,其中包含一些自定义属性: :~$
我正在尝试实现一个远程文件系统并且正在考虑使用 libsmbclient 要做到这一点。不幸的是,我在 googleling for 时没有遇到任何有用的文档 它。任何人都可以建议我详细描述 libs
我必须卸载samba ,因为我配置错误。但现在当我尝试使用 sudo apt-get install samba smbfs 重新安装它时,我得到输出:- Reading package lists.
我已经在我的树莓派上安装了运行 debian (raspbian) 的 samba 和 samba-common-bin 然后我更改 samba 的配置并在末尾添加以下内容: [photocam] c
为了提高性能,是否可以在 Linux 上从 CIFS 挂载文件异步读取? 谢谢!!! 最佳答案 Glibc 的 aio 实现创建线程来执行 I/O,因此它不依赖于文件系统类型来工作。 (另一方面,这也
我目前正在使用 CentOS 6.5 并尝试通过 samba 共享来共享文件。另一台机器是 Windows 8 x64。我可以毫无问题地将文件夹从 Windows 传输到 CentOS,但是,当我尝试
我有一台带有以下文件夹的 Ubuntu 机器。 我正在使用 samba 服务器共享文件夹。 我有 3 个用户: 用户 1 = 完全访问权限 用户 2 = 访问文件夹音乐(只读) 用户 3 = 访问文件
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界. 这篇CFSDN的博客文章SWAT—Samba WEB管理工具介绍由作者收集整理,如果你对这篇文章
我在两个 Linux 机器(Ubuntu Desktop 12.10 和 Ubuntu Server 12.04)之间设置了 Samba。出于某种原因,我无法写入我的 samba 共享。在我看来,我拥
我正在使用一台没有根访问权限的机器,并且想以随机访问模式访问 Samba 服务器上的文件。我知道我可以使用 smbclient 完整地传输文件,但文件非常大 (>1GB),我宁愿将它们视为我可以进行随
我有一个安装了 MS Office 的 Microsoft Server 2019 Standard。我还有一个 Linux 服务器,它共享每个用户的 ~/windows/登录时使用其 Windows
我目前正在运行全新安装的 CentOS 7(64 位)。除了通过 Samba 进行存储外,这台机器不用于任何用途。但是,由于某种奇怪的原因,我看不到让共享可以通过 Windows 写入。映射驱动器后,
我正在尝试运行以下代码: shaliya@achala:~$ sudo apt-get install samba Reading package lists... Done Building dep
我有一个用于 samba 客户端的 java 代码,它可以将文件从我的 unix 机器放到 windows 机器上。我需要检查目录是否存在,如果不存在,则创建目录,然后将文件放入该目录。我可以将文件放
我可以在没有身份验证的情况下毫无问题地在网络共享上映射驱动器。但是一旦我尝试使用用户名和密码进行身份验证,我就错过了一些东西。这是代码的当前工作示例,其中包含我不断收到的错误消息。 #!/usr/bi
我正在尝试在我的树莓派上设置一个 samba 服务器。 我安装了 samba 并对我在各种 YouTube 视频或博客文章中找到的 smb.conf 进行了一些修改。 $ testparm/etc/s
我是一名优秀的程序员,十分优秀!