使用.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 举报,一经查实,本站将立刻删除。