private void CheckSelectedFolder(Interop.IFileDialog pfd, Interop.IShellItem psiFolder) { // NativeMethods.SFGAOF fileSystemFlags = 0; psiFolder.GetAttributes(NativeMethods.SFGAOF.SFGAO_FILESYSTEM, out fileSystemFlags); if (fileSystemFlags != 0) { // A filesystem folder, but is it valid? string path; psiFolder.GetDisplayName(NativeMethods.SIGDN.SIGDN_FILESYSPATH, out path); if (IsShortcut(path)) { path = ResolveShortcut(path); } //Console.WriteLine("filesyspath path: {0}", path); _dialog.DoFolderSelected(path); } else { // Not a filesystem, let the user know _dialog.DoFolderSelected(""); } }