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 <[email protected] <mailto:[email protected]>>:

    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 <[email protected]
    <mailto:[email protected]>>:

        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






Reply via email to