我正在尝试使用以下代码通过“开始菜单”文件夹进行递归循环:
Function(string pathFolder) {
Shell32.Shell shell = new Shell32.Shell();
Shell32.Folder folderObj = shell.NameSpace(pathFolder);
foreach ( Shell32.FolderItem2 item in objFolder.Items() ) {
string typeItem = folderObj.GetDetailsOf(item, 2);
if ( typeItem == "File folder" ) {
string folderName = folderObj.GetDetailsOf(item, 0);
Function(pathFolder + "\\" + folderName);
} else {
// do smomething...
}
}
问题是 Shell.Namespace 适用于某些文件夹,而不是全部。对于那些不工作的文件夹,即使这些文件夹确实存在,Shell.Namespace 也会返回 null。
我的代码有什么问题?