-
Notifications
You must be signed in to change notification settings - Fork 0
Add Data Shredder application with GUI #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This commit introduces a new application called 'Data Shredder' that securely deletes files and folders using various overwrite methods. It includes a graphical user interface built with Tkinter, supporting multiple languages and file export options.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a comprehensive Data Shredder application with a Tkinter-based GUI for securely deleting files and folders using multiple overwrite methods. The application supports internationalization (German/English), various wiping algorithms, and export functionality for operation reports.
Key changes:
- Implementation of secure file deletion with multiple algorithms (Zero Fill, Random, DoD 5220.22-M, NIST SP 800-88, Gutmann)
- GUI application with file/folder selection, progress tracking, and logging
- Bilingual support with dynamic language switching
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| if written != n: | ||
| raise IOError("Short write") | ||
| remaining -= n | ||
| f.flush(); os.fsync(f.fileno()) |
Copilot
AI
Aug 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Multiple statements on a single line reduces readability. Consider separating these into two lines: f.flush() followed by os.fsync(f.fileno()).
| f.flush(); os.fsync(f.fileno()) | |
| f.flush() | |
| os.fsync(f.fileno()) |
| raise ValueError("Unknown method") | ||
|
|
||
| def _verify_pattern(self, f, size: int, chunk_size: int, byte_val: int) -> bool: | ||
| f.flush(); os.fsync(f.fileno()) |
Copilot
AI
Aug 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Multiple statements on a single line reduces readability. Consider separating these into two lines: f.flush() followed by os.fsync(f.fileno()).
| f.flush(); os.fsync(f.fileno()) | |
| f.flush() | |
| os.fsync(f.fileno()) |
| self.tree.heading("path", text=I18N[self.lang]["columns"]["path"]) ; | ||
| self.tree.heading("size", text=I18N[self.lang]["columns"]["size"]) ; | ||
| self.tree.heading("status", text=I18N[self.lang]["columns"]["status"]) ; |
Copilot
AI
Aug 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Trailing semicolons are unnecessary in Python and reduce code readability. Remove the semicolons from these lines.
| self.tree.heading("path", text=I18N[self.lang]["columns"]["path"]) ; | |
| self.tree.heading("size", text=I18N[self.lang]["columns"]["size"]) ; | |
| self.tree.heading("status", text=I18N[self.lang]["columns"]["status"]) ; | |
| self.tree.heading("path", text=I18N[self.lang]["columns"]["path"]) | |
| self.tree.heading("size", text=I18N[self.lang]["columns"]["size"]) | |
| self.tree.heading("status", text=I18N[self.lang]["columns"]["status"]) |
This commit introduces a new application called 'Data Shredder' that securely deletes files and folders using various overwrite methods. It includes a graphical user interface built with Tkinter, supporting multiple languages and file export options.