[FIX] Fix erasing when overwriting disk size

This commit is contained in:
vadzik 2024-04-20 18:35:30 +03:00
parent 0ffe7d07df
commit 5f55c6a156

View File

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