枚举SpecialFolders枚举

时间:2019-09-26 07:27:38

标签: powershell enums

我已经成功地使用[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])

但是比循环少暴力的解决方案将是成功的。

在某种情况下,我正在反向递归删除空文件夹,即删除空文件夹,然后检查父文件夹是否为空,如果是,则删除它,然后备份树。但是,我想在碰到任何类型的系统文件夹后都停止操作,一个很好的例子是“我的文档”。即使“我的文档”中没有其他内容,我也想保留它。

0 个答案:

没有答案