--- a/ZipArchive.st Fri Jun 06 12:42:29 2008 +0200
+++ b/ZipArchive.st Mon Jun 09 20:33:45 2008 +0200
@@ -3869,18 +3869,24 @@
!
restoreOsDirectory:osDirectoryName fromArchiveDirectory: archiveDirectoryName
- |osDirectory fileNameOrDirectoryEntry|
+ |osDirectory fileNameOrDirectoryEntry directoryAlreadyCreated|
+
osDirectory := osDirectoryName asFilename.
(osDirectory exists and: [osDirectory isDirectory not]) ifTrue:[
^ self
].
- osDirectory exists ifFalse:[
- osDirectory recursiveMakeDirectory
- ].
+ directoryAlreadyCreated := false.
self members do: [:aMember|
(aMember fileName startsWith: archiveDirectoryName) ifTrue: [
+ directoryAlreadyCreated ifFalse:[
+ osDirectory exists ifFalse:[
+ osDirectory recursiveMakeDirectory.
+ directoryAlreadyCreated := true.
+ ]
+ ].
+
fileNameOrDirectoryEntry := osDirectory construct: (aMember fileName copyFrom: (archiveDirectoryName size +1)).
fileNameOrDirectoryEntry notEmptyOrNil ifTrue: [
aMember compressedSize == 0 ifTrue: [
@@ -4523,7 +4529,7 @@
!ZipArchive class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic2/ZipArchive.st,v 1.66 2008-06-06 10:42:29 ab Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic2/ZipArchive.st,v 1.67 2008-06-09 18:33:45 cg Exp $'
! !
ZipArchive initialize!