因此,无论大小写如何,都会阻止包含单词“windows”的任何路径。所以“MyWindowsStuff”将被排除在外。您可能也希望扩展检查不区分大小写。
您还需要处理完整路径而不仅仅是相对路径。
这是否足够取决于你。您是否认为有可能或有可能使用短文件名来访问受限目录?例如,如果您想阻止人们访问“Program Files”目录,您必须获取该目录的简称并与之进行比较。在我的系统上,“Program Files”是“PROGRA~1”,“Program Files(x86)”是“PROGRA~2”。
关于你对“MyWindowsStuff”的评论很少见。如果有人有一个名为“windows.txt”的文件,这是他想要放在他家里的窗户的描述怎么办?或者是一个“Windows”目录,它是“Documents”文件夹的子目录,在那里他正在为他要为客户安装的窗口放置一个引用?你的“罕见案例”并不是那么罕见,你可能会这样。
您要阻止的唯一“Windows”目录是Windows目录,它甚至不一定称为“Windows”。您可以通过调用获取该目录的名称 Environment.GetFolderPath :
Environment.GetFolderPath( Environment.SpecialFolder.Windows )
任何其他名为“Windows”或包含单词“windows”的目录不是Windows目录,不应该被阻止,也不应该在文件名中包含单词“windows”的路径名。