我已经成功地使用[environment]::getfolderpath('SPECIALFOLDERNAME')
来获取特殊文件夹的路径,但是现在我想稍微反过来。
我想从C:\Users\Px_Install\Documents
开始,[environment]::getfolderpath('mydocuments')
将返回,并获得$ true。如果我以C:\SomeRandomFolder
开头,我希望获得$ false的奖励。
鉴于[System.Enum]::GetNames([System.DayOfWeek])
可以正常工作,我想我可以使用[System.Enum]::GetNames([System.Environment.SpecialFolder])
或也许[System.Environment.SpecialFolder]::GetNames()
遍历所有可用的特殊文件夹并根据我的路径进行测试。但这失败了
找不到类型[System.Environment.SpecialFolder]。
而且还是有点蛮力的。因此,是否有更直接的途径?如果没有,我对SpecialFolder枚举的枚举会做错什么?
编辑:关于第二个问题,我刚刚发现它可行。
[enum]::GetNames([Environment+SpecialFolder])
但是比循环少暴力的解决方案将是成功的。
在某种情况下,我正在反向递归删除空文件夹,即删除空文件夹,然后检查父文件夹是否为空,如果是,则删除它,然后备份树。但是,我想在碰到任何类型的系统文件夹后都停止操作,一个很好的例子是“我的文档”。即使“我的文档”中没有其他内容,我也想保留它。