[Pharo-dev] unzip:to:

stepharo stepharo at free.fr
Tue Apr 19 09:46:12 EDT 2016



Le 19/4/16 15:41, Valentin Ryckewaert a écrit :
> How does unzip:to: access to the file ?
I do not get your question?
> It must be in the workingDirectory?

Read the code luke....


unzip: fullFileName to: pathString
     "Unzip the contents of the file specified by the full path name 
fullFileName to the location given by pathString."

     | zipped buffer unzipped newName |
     newName := fullFileName copyUpToLast: FileSystem disk 
extensionDelimiter.
     pathString asFileReference ensureCreateDirectory.
     unzipped := FileStream newFileNamed: (pathString asFileReference / 
newName) fullName.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


     unzipped ifNil: [self error: pathString, ' looks incorrect'].
     [ unzipped binary.
     zipped := self on: (FileStream readOnlyFileNamed: fullFileName).
     buffer := ByteArray new: 50000.
     [zipped atEnd] whileFalse: [unzipped nextPutAll: (zipped nextInto: 
buffer)]]
         ensure: [
             zipped close.
             unzipped close].
     ^ newName



>
>
> 2016-04-19 15:06 GMT+02:00 Hernán Morales Durand 
> <hernan.morales at gmail.com <mailto:hernan.morales at gmail.com>>:
>
>     I use it a lot to uncompress external resources like this:
>
>     fileRef := ....
>     GZipReadStream unzip: fileRef basename to: FileSystem
>     workingDirectory.
>
>     but it could be used to pass a directory as String I guess.
>     Comment should be corrected.
>
>
>     2016-04-19 9:54 GMT-03:00 stepharo <stepharo at free.fr
>     <mailto:stepharo at free.fr>>:
>
>         unzip: fullFileName to: pathString
>             "Unzip the contents of the file specified by the full path
>         name fullFileName to the location given by pathString."
>
>         so we would expect to pass a string in the second argument?
>
>         the unique sender of it in the system
>
>         unzip: fullFileName
>             "Unzip the contents of a gzipped file specified by its
>         full file name to the current working directory"
>
>             ^ self unzip: fullFileName to: FileSystem disk
>         workingDirectory
>
>
>         but the implementation seems to indicate that fullFileName is
>         should be a string as well as pathString
>
>         unzip: fullFileName to: pathString
>             "Unzip the contents of the file specified by the full path
>         name fullFileName to the location given by pathString."
>
>             | zipped buffer unzipped newName |
>             newName := fullFileName copyUpToLast: FileSystem disk
>         extensionDelimiter.
>             pathString asFileReference ensureCreateDirectory.
>             unzipped := FileStream newFileNamed: (pathString
>         asFileReference / newName) fullName.
>             unzipped ifNil: [self error: pathString, ' looks incorrect'].
>             [ unzipped binary.
>             zipped := self on: (FileStream readOnlyFileNamed:
>         fullFileName).
>             buffer := ByteArray new: 50000.
>             [zipped atEnd] whileFalse: [unzipped nextPutAll: (zipped
>         nextInto: buffer)]]
>                 ensure: [
>                     zipped close.
>                     unzipped close].
>             ^ newName
>
>         Am I correct to think that the comments are not really good
>         enough?
>
>         Stef
>
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20160419/882c7c51/attachment.html>


More information about the Pharo-dev mailing list