A faked Total Commander in C#
Function (Shortcut) | How to implement |
---|---|
Copy (Ctrl+C) | Use Clipboard to create file list that needed to copy. In cut, use additional flag CanCut in order to delete file after Cut. |
Move (Ctrl+X) | Like above |
Paste (Ctrl+V) | Paste file and folder from list in Clipboard to target folder |
Delete (Delete or Shift+Delete) (Many file and folder) | Use Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile and FileSystem.DeleteDirectory to delete file and display familiar delete-file-prompt message box |
Rename (F2) (Many file and folder) | Set LabelEdit attritube of ListView and implement handler for AfterLabelEdit event |
Find (Ctrl+F) | Use seperate FormFileFinds form to search for files, where using DirectoryInfo.GetFiles and DirectoryInfo.GetDirectories |
View in detail or in list | Set View.Details or View.List |
Sort file in column | Implement handler for ColumnClick event with comparers such as CompareFileName , CompareFileExtension , CompareFileSize , etc |
Use VirtualListView for faster display |
Set VirtualMode = true , handlers for CacheVirtualItems , RetrieveVirtualItem , SearchForVirtualItem |
Support Drop&Drag | Implement handlers for DragEnter , DragDrop , ItemDrag |
Support file browser history | In ShellHistory class |
In fact, each window is a UserControl
, mostly including other controls like ListView
, TextBox
, ComboBox
, TreeView
.
Key | Action |
---|---|
F1 / Ctrl+C | Copy selected items |
F2 | Rename selected items |
F3 | View selected files |
F4 | Edit selected items |
F5 | Refresh file browser. |
F6 / Ctrl+X | Move selected items |
F7 / Ctrl+Shift+N | Create new folder |
F8 | Delete selected items |
Ctrl+V | Paste files or folders. |
Ctrl+Q | Exit the application. |
Alt+Enter | Open properties dialog for selected items. |
Ctrl+F | Search for files and folders. |
Alt+⇑ | Go to parent folder |
Backspace / Alt+⇐ | Go to previous folder. |
Alt+⇒ | Go to the following folder. |
Enter | Open file or folder. |
Delete | Send files or folders to Recycle bin |
Shift+Delete | Permanently remove files or folders. |
- Add handler for menu bar
- Test suits
- Add Travis CI build tests
- Beautify Keyboards.html
- Written by @lzutao
- Release under GPLv3 License
- Software is as is - no warranty expressed or implied.