当前位置: 首页 > 编程语言 > C#

C#学习教程:.NETfilesystemwatcher——是文件还是目录?分享

时间:2023-04-10 14:44:34 C#

.NETfilesystemwatcher-是文件还是目录?有没有办法确定FSW是否删除了文件或目录?这是弗莱彻解决方案的简化和更正版本:namespaceWatcher{classProgram{privateconststringDirectory=@"C:Temp";私有静态FileSystemWatcher_fileWatcher;私有静态FileSystemWatcher_dirWatcher;staticvoidMain(string[]args){_fileWatcher=newFileSystemWatcher(Directory);_fileWatcher.IncludeSubdirectories=true;_fileWatcher.NotifyFilter=NotifyFilters.FileName;_fileWatcher.EnableRaisingEvents=true;_fileWatcher.Deleted+=WatcherActivity;_dirWatcher=newFileSystemWatcher(目录);NotifyFilter=NotifyFilters.DirectoryName;_dirWatcher.EnableRaisingEvents=true;_dirWatcher.Deleted+=WatcherActivity;控制台.ReadLine();}staticvoidWatcherActivity(objectsender,FileSystemEventArgse){if(sender==_dirWatcher"){Console.WriteLine(Directory:{0}",e.FullPath);}else{Console.WriteLine("文件:{0}",e.FullPath);}}}}我最初暂时使用“路径”功能,但后来如果不删除,我将通过目录。然而,Exists修复了它,这并没有解决删除案例boolisDirectory=Path.GetExtension(e.FullPath)==string.Empty;if(e.ChangeType!=WatcherChangeTypes.Deleted){isDirectory=Directory.Exists(e.FullPath);你的问题只有在同一路径中可能有同名的文件和目录时才有意义。例如,如果您有没有扩展名的文件名或有扩展名的目录。如果您的目录和文件遵循通常的约定,只需检查扩展名是否存在于完整路径中(booliSDirectory=Path.GetExtension(e.FullPath).Equals("");),文件/目录是否有效,因为该方法只解析给定的路径,与文件无关。如果你必须处理我一开始提到的非常规问题,你可以检查该位置是否存在目录或文件。如果两者都没有,则将它们视为两者都已删除。如果其中一个确实存在,则另一个被认为已删除。您的查询意味着您在某处保留了一个文件和目录列表,因此,检查该列表,您可以决定要做什么。我认为这种方法比使用两个文件系统观察器来解决差异的解决方案更好。您可以询问FileSystemEventArgs.FullPath属性以判断它是目录还是文件。if(Path.GetFileName(e.FullPath)==String.Empty){//这是一个目录。}检查它是文件还是目录。以上就是C#学习教程:.NETfilesystemwatcher-isitafileoradirectory?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: