Ticket #37 (closed defect: fixed)

Opened 10 months ago

Last modified 10 months ago

Confusing behavior of isdir/isfile/islink when a path isn't found

Reported by: ftputiluser Owned by: schwa
Priority: major Milestone: 2.4.1
Component: Documentation Version:
Keywords: listdir, isdir, isfile, islink Cc:

Description

here an example

In [22]: host=ftputil.FTPHost('ftp.microsoft.com','anonymous','test@test.com')

In [23]: lista=host.listdir('/deskapps/games/public/archive_e3/DungeonSiege&FreeLancer/Dungeon Siege')                                                                        

In [24]: lista
Out[24]:      
['Chris Taylor .doc',
 'Dungeon Siege Fact Sheet.doc',
 'Logos',                       
 'Screenshots',                 
 'Sketches']                    

In [25]: for l in lista:
   ....:     print host.path.isdir(l)
   ....:     print host.path.isfile(l)
   ....:     print host.path.islink(l)
   ....:
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False

maybe the & in the pathname?

regards Nicola

Change History

Changed 10 months ago by schwa

  • keywords listdir, isdir, isfile, islink added
  • resolution set to fixed
  • status changed from new to closed
  • component changed from Library to Documentation

You list a remote directory, but you don't change into it and call is*() with the relative paths returned by listdir. As Python's os.path.is*() methods, ftputil's return False if they can't find a filesystem item with the given name.

Probably the documentation should point this pitfall out, which I've also run into in the past. I added something on that to the documentation in changeset 862.

Changed 10 months ago by schwa

  • summary changed from Results from listdir are not file,not link and not dir to Confusing behavior of isdir/isfile/islink when a path isn't found

Changed 10 months ago by schwa

  • milestone set to 2.4.1
Note: See TracTickets for help on using tickets.