Lars Gustäbel <[email protected]> added the comment:
a) The point is: the operation simply wouldn't fail on a case-sensitive
filesystem. There is no platform-specific or otherwise special code in
TarFile.makefile(). It simply tries to extract the file and the filesystem
layer says no, because it believes there is already a directory with the same
name. The same thing happens on a Windows filesystem BTW. The problem boils
down to this:
>>> os.mkdir("A")
>>> open("a", "w")
IOError: [Errno 21] Is a directory: 'a'
And IIUC, the Mac OS X filesystem is case-preserving(!) by default, with the
possibility to create new filesystems as case-sensitive. As I said, my Mac OS X
expertise is almost nonexistent, you might as well ask someone with more
knowledge on Python on Mac OS X.
b) I don't know what Finder does with that archive, but I cannot think of any
other way than either not to extract the file at all or to extract it under a
different name or to remove the directory first and then extract the file.
Could you please examine how Finder extracts this archive?
c) IMHO the IOError exception is perfectly fine, because this kind of issue is
outside of tarfile's scope. We hit a filesystem limit here. Also, there is no
decent way to work around this problem, and I think there is no need to either.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue8958>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com