title: C# - Shell.Namespace(pathFolder) return null, even the <pathFolder> exists
body: <p>I'm trying to do a recursive loop through "Start Menu" folder using following code:</p>
  
  <pre><code>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...
      }
  }
  </code></pre>
  
  <p>The problem is Shell.Namespace works fine for some folders, not all. For those not-working folders, Shell.Namespace return null even these folders do exist.</p>
  
  <p>What's wrong with my code?</p>