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 >>>> >>>> >>>> >>>> >>> >> >> > >
