MCPcopy Create free account
hub / github.com/ActiveState/code / remove_file

Method remove_file

recipes/Python/492212_dal4py/recipe-492212.py:87–112  ·  view source on GitHub ↗
(self, block)

Source from the content-addressed store, hash-verified

85
86 # Remove Old File
87 def remove_file(self, block):
88 assert type(block) is int and 1 <= block <= self.__blocks
89 assert self.is_file(block)
90 data = self.__disk.read_file(block)
91 size = ord(data[2])
92 blocks = data[size+3+4:]
93 pointers = [(ord(blocks[index*2]) << 8) + ord(blocks[index*2+1]) \
94 for index in range(len(blocks) / 2)]
95 for pointer in pointers:
96 self.__disk.close_block(pointer)
97 self.__disk.close_file(block)
98 root = (ord(data[0]) << 8) + ord(data[1])
99 data = self.__disk.read_directory(root)
100 size = ord(data[2])
101 header = data[:size+3]
102 contents = data[size+3:]
103 pointers = [(ord(contents[index*2]) << 8) + ord(contents[index*2+1]) \
104 for index in range(len(contents) / 2)]
105 assert block in pointers
106 pointers.remove(block)
107 assert block not in pointers
108 contents = ''.join([chr(pointer >> 8) + chr(pointer & 0xFF) \
109 for pointer in pointers])
110 data = header + contents
111 self.__disk.write_directory(root, data)
112 return root
113
114 # Read From File
115 def read_file(self, block):

Callers 1

removeMethod · 0.45

Calls 9

is_fileMethod · 0.95
rangeFunction · 0.85
close_blockMethod · 0.80
close_fileMethod · 0.80
read_directoryMethod · 0.80
write_directoryMethod · 0.80
read_fileMethod · 0.45
removeMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected