Hello,

I understood the problem with pathString and I'm ok with your opinion but I
would like to come back on the first one "fullfilename" as I understand it,
it must be a basename ?
When I read the implementation with fullfilename which would be a path
'/aPath/foo.zip'.

newName := fullFileName copyUpToLast: FileSystem disk extensionDelimiter.
newName would be in that case : /aPath/foo'

unzipped := FileStream newFileNamed: (pathString asFileReference / newName)
fullName.
Here the newFileNamed: parameter will be '/aPathDestination/aPath/foo' so
it could be something like '/home/home/foo' it's not correct according to
me.

As I understand it, this message only works if fullFileName is 'foo.zip'
and is in the folder which contain Pharo image as we can't specify a path.

Valentin

2016-04-19 20:40 GMT+02:00 stepharo <[email protected]>:

>
>
> Le 19/4/16 15:53, Valentin Ryckewaert a écrit :
>
> I mean, fileRef basename is myZip.zip and workingDirectory is the place
> files will go after being unziped but how does we find the file named
> fileRef basename ?
>
>
>
> 'foo.txt' asFileReference -> a fileRef
>
> 'foo.txt' asFileReference basename.
>
> (FileSystem disk workingDirectory / 'foo.txt') basename
>
> this is explained in the File chapter.
>
>
> Can you open a bug entry to improve the comment of the method?
>
>
> 2016-04-19 15:46 GMT+02:00 stepharo <[email protected]>:
>
>>
>>
>> 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]>:
>>
>>> 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]>[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