Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #58825

Re: pywin32 programming error on Win7 with shell.SHGetDesktopFolder, desktop.BindToObject, desktop.GetDisplayNameOf

Date 2013-11-08 17:51 +0000
From MRAB <python@mrabarnett.plus.com>
Subject Re: pywin32 programming error on Win7 with shell.SHGetDesktopFolder, desktop.BindToObject, desktop.GetDisplayNameOf
References <1b6591af-904c-4a95-8a7b-ee0c63af75db@googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.2233.1383933110.18130.python-list@python.org> (permalink)

Show all headers | View raw


On 08/11/2013 03:30, iMath wrote:
>
> When running the following code on WinXP , all is fine ,
> --------------------------------------------------------------
> from win32com.shell import shell
>
> def launch_file_explorer(path, files):
>
>      folder_pidl = shell.SHILCreateFromPath(path,0)[0]
>      desktop = shell.SHGetDesktopFolder()
>      shell_folder = desktop.BindToObject(folder_pidl, None,shell.IID_IShellFolder)
>      name_to_item_mapping = dict([(desktop.GetDisplayNameOf(item, 0), item) for item in shell_folder])
>      to_show = []
>      for file in files:
>          if file not in name_to_item_mapping:
>              raise Exception('File: "{}" not found in "{}"'.format(file, path))
>          to_show.append(name_to_item_mapping[file])
>      shell.SHOpenFolderAndSelectItems(folder_pidl, to_show, 0)
> import os
>
>
> p=r'E:\aa'
> print(os.listdir(p))
> launch_file_explorer(p, os.listdir(p))
> --------------------------------------------------------------
>
> however ,when tested on Win7,I got the following error
>
> --------------------------------------------------------------
>
> ['b1', 'b2', 't.txt']
> Traceback (most recent call last):
>    File "D:\g.py", line 21, in <module>
>      launch_file_explorer(p, os.listdir(p))
>    File "D:\g.py", line 13, in launch_file_explorer
>      raise Exception('File: "{}" not found in "{}"'.format(file, path))
> Exception: File: "t.txt" not found in "E:\aa"
> --------------------------------------------------------------
> I nearly have no experience on pywin32 programming ,the above code is googled,anyone can help me fix this error ?thanks in advance !
>
It's building a dict where the key is the result of
desktop.GetDisplayNameOf(item, 0), and it's then not finding a given
name in that dict.

Try printing the keys to see what's there. It might be that
desktop.GetDisplayNameOf(item, 0) returns different strings in Win7
from those in WinXP.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

pywin32 programming error on Win7 with shell.SHGetDesktopFolder,desktop.BindToObject,desktop.GetDisplayNameOf iMath <redstone-cold@163.com> - 2013-11-07 19:30 -0800
  Re: pywin32 programming error on Win7 with shell.SHGetDesktopFolder,  desktop.BindToObject, desktop.GetDisplayNameOf Tim Golden <mail@timgolden.me.uk> - 2013-11-08 09:47 +0000
    Re: pywin32 programming error on Win7 with shell.SHGetDesktopFolder,  desktop.BindToObject, desktop.GetDisplayNameOf iMath <redstone-cold@163.com> - 2013-11-08 07:28 -0800
    Re: pywin32 programming error on Win7 with shell.SHGetDesktopFolder,  desktop.BindToObject, desktop.GetDisplayNameOf iMath <redstone-cold@163.com> - 2013-11-08 07:28 -0800
  Re: pywin32 programming error on Win7 with shell.SHGetDesktopFolder,  desktop.BindToObject, desktop.GetDisplayNameOf MRAB <python@mrabarnett.plus.com> - 2013-11-08 17:51 +0000
    Re: pywin32 programming error on Win7 with shell.SHGetDesktopFolder,  desktop.BindToObject, desktop.GetDisplayNameOf iMath <redstone-cold@163.com> - 2013-11-09 21:23 -0800
  Re: pywin32 programming error on Win7 with shell.SHGetDesktopFolder,desktop.BindToObject,desktop.GetDisplayNameOf iMath <redstone-cold@163.com> - 2013-11-10 04:39 -0800
  Re: pywin32 programming error on Win7 with shell.SHGetDesktopFolder,desktop.BindToObject,desktop.GetDisplayNameOf iMath <redstone-cold@163.com> - 2013-11-10 04:39 -0800

csiph-web