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.




