c# - Shell.Namespace(pathFolder)返回null,即使是的存在

本文关键字:pathFolder 即使是 存在 null 返回 Shell Namespace | 更新日期: 2023-09-27 18:04:58

我正在尝试使用以下代码通过"开始菜单"文件夹进行递归循环:

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。命名空间适用于某些文件夹,而不是所有文件夹。对于那些不能工作的文件夹,Shell。命名空间返回null,即使这些文件夹确实存在

我的代码有什么问题?

c# - Shell.Namespace(pathFolder)返回null,即使是<pathFolder>的存在

为什么不使用System ?IO命名空间类?我认为它有更高级的API。对你来说,可能是安全问题。

相关文章: