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