[FIX] Fix erasing when overwriting disk size
This commit is contained in:
parent
0ffe7d07df
commit
5f55c6a156
@ -1,5 +1,6 @@
|
||||
import threading
|
||||
import os
|
||||
import traceback
|
||||
|
||||
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
|
||||
from cryptography.hazmat.backends import default_backend
|
||||
@ -88,20 +89,26 @@ class Drive():
|
||||
prev_percent = 0
|
||||
len_write = 0
|
||||
progressbar.set(prev_percent)
|
||||
progress_label.configure(text=f"{int(prev_percent*100)} %, {i+1}")
|
||||
while len_write < self.capacity:
|
||||
if erasing_methods[method]["data"][i] == "random":
|
||||
data = get_random_bytes(write_size)
|
||||
else:
|
||||
data = erasing_methods[method]["data"][i] * write_size
|
||||
if len(data) > self.capacity - len_write:
|
||||
print(self.capacity - len_write)
|
||||
data = data[:self.capacity - len_write]
|
||||
drive.write(data)
|
||||
len_write += len(data)
|
||||
cur_percent = len_write/self.capacity
|
||||
if cur_percent - prev_percent > 0.01:
|
||||
progressbar.set(cur_percent)
|
||||
progress_label.configure(text=f"{int(cur_percent*100)} %")
|
||||
progress_label.configure(text=f"{int(cur_percent*100)} %, {i+1}")
|
||||
prev_percent = cur_percent
|
||||
del data
|
||||
result["result"] = True
|
||||
result["err"] = ""
|
||||
except Exception as e:
|
||||
print(traceback.format_exc())
|
||||
result["result"] = False
|
||||
result["err"] = e
|
||||
Loading…
x
Reference in New Issue
Block a user