微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – FileSystemWatcher – 目标目录所需的最小权限?

使用.NET FileSystemWatcher http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx监视完整文件的目录:已更改;创建;删除;重命名的活动.

运行FileSystemWatcher的帐户在其正在观看的目录上所需的权限最小的是什么?

它似乎是READ,但我找不到任何记录.

谢谢

解决方法

底层API是ReadDirectoryChangesW. MSDN Library文章中提到的唯一事情是目录句柄上需要FILE_LIST_DIRECTORY访问权限,并且需要使用FILE_FLAG_BACKUP_SEMANTICS选项打开目录.

.NET框架代码通常很有用.私有FileSystemWatcher.StartRaisingEvents()方法使用此代码打开目录句柄:

directoryHandle = NativeMethods.CreateFile(
    directory,// Directory name
    UnsafeNativeMethods.FILE_LIST_DIRECTORY,// access (read-write) mode
    UnsafeNativeMethods.FILE_SHARE_READ |
    UnsafeNativeMethods.FILE_SHARE_DELETE |
    UnsafeNativeMethods.FILE_SHARE_WRITE,// share mode
    null,// security descriptor
    UnsafeNativeMethods.OPEN_EXISTING,// how to create
    UnsafeNativeMethods.FILE_FLAG_BACKUP_SEMANTICS |
    UnsafeNativeMethods.FILE_FLAG_OVERLAPPED,// file attributes
    new SafeFileHandle(IntPtr.Zero,false));   // file with attributes to copy

仅对异步通知使用FILE_FLAG_OVERLAPPED.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐