/
ZipDirectoryMember.class.st
65 lines (52 loc) · 1.59 KB
/
ZipDirectoryMember.class.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
"
ZipFileMember instances represent directories inside ZipArchives.
They don't do much other than hold names and permissions (and extra fields).
You can add files in subdirectories to a ZipArchive without using any ZipDirectoryMembers.
"
Class {
#name : #ZipDirectoryMember,
#superclass : #ZipFileMember,
#category : #'Compression-Archives'
}
{ #category : #'instance creation' }
ZipDirectoryMember class >> newFromDirectory: aFileReference [
^(self new) localFileNameFrom: aFileReference; yourself
]
{ #category : #private }
ZipDirectoryMember >> asDirectory [
^self
]
{ #category : #accessing }
ZipDirectoryMember >> desiredCompressionMethod: aNumber [
]
{ #category : #initialization }
ZipDirectoryMember >> initialize [
super initialize.
externalFileAttributes := self mapPermissionsFromUnix: DefaultDirectoryPermissions.
super desiredCompressionMethod: CompressionStored.
]
{ #category : #testing }
ZipDirectoryMember >> isDirectory [
^true
]
{ #category : #accessing }
ZipDirectoryMember >> localFileName: aString [
self localFileNameFrom: aString asFileReference
]
{ #category : #accessing }
ZipDirectoryMember >> localFileNameFrom: aFileReference [
super localFileName: (aFileReference basename copyWith: $/).
aFileReference exists ifFalse: [ ^ self ].
self modifiedAt: aFileReference entry modificationTime.
]
{ #category : #private }
ZipDirectoryMember >> rewindData [
]
{ #category : #testing }
ZipDirectoryMember >> usesFileNamed: aName [
^false
]
{ #category : #'private-writing' }
ZipDirectoryMember >> writeDataTo: aStream [
"Write nothing. Directories have no contents to write."
]