IntelliFile

IntelliFile
IntelliFile

Introduction

IntelliFile is a free (as in “free speech” and also as in “free beer”) file manager. Running in the Microsoft Windows environment, its use is governed by GNU General Public License v3.0. IntelliFile is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size. By optimizing as many routines as possible without losing user friendliness, IntelliFile is trying to reduce the world carbon dioxide emissions. When using less CPU power, the PC can throttle down and reduce power consumption, resulting in a greener environment. I hope you enjoy IntelliFile as much as I enjoy coding it!

File handling:

  • Extended copying, moving, renaming and deleting of entire trees.
  • Compare files by content, now with built-in text editor.
  • Encode/Decode files in Base64 format.
  • Show/select files with specific search pattern, size, date or contents.
  • Enhanced search function with full text search in any files across multiple drives, even inside archives.
  • Supports Drag & Drop with Explorer/the Desktop.

FTP client:

  • Built-in FTP client supports most public FTP servers.
  • Secure FTP over SSL/TLS, enter the URL as follows: ftps://ftp.servername.com
  • Download in the background (separate thread).

Archive handling:

  • Archives are handled like subdirectories. You can easily copy files to and from archives.
  • Built-in ZIP-compatible packer, supports long filenames! This packer is based on ZLIB by Info-Zip.
  • Pack archives in the background (separate thread).

Some of the above features are still under development!

Getting started

Install IntelliFile using the installer

  • Download the installer
  • Run the executable binary and follow the installation flow

The installer will likely require Administrative privileges in order to install IntelliFile (and later, to update IntelliFile or install or update plugins, or anything else that requires writing to the installation directory). If you do not have Administrative privileges, you either need to tell the installer to use a location where you do have write permission (though that may still ask for Administrator privileges), or you may choose not use the installer and instead run a portable edition from a directory where you have write permission.

Install IntelliFile from zip

These instructions will allow you to run a portable or mini-portable (also called “minimalist”), without requiring administrative privileges.

  • Create a new folder somewhere that you have write-permission
  • Unzip the content into the new folder
  • Run IntelliFile from the new folder

The portable zip edition of IntelliFile can be removed by deleting the directory they came in. If you manually set up file associations or context-menu entries in the OS, it is your responsibility to remove them yourself.

Application’s menu

The IntelliFile menu features the application’s most important functions:

  • Refresh: Refreshes the current view content.
  • Change Drive: Changes the current view’s drive.
  • Reset View: Resets current folder to root folder.
  • Switch Views: Switches source view with target view.
  • View File: Views current selected file.
  • Edit File: Edits current selected file.
  • Select File: Shows/selects files with specific search pattern, size, date or contents.
  • Search File(s): Enhanced search function with full text search in any files.
  • Copy File/Folder: Copies current selected file(s)/folder(s).
  • Move File/Folder: Moves current selected file(s)/folder(s).
  • New Folder: Creates a new folder.
  • Delete File/Folder: Deletes current selected file(s)/folder(s).
  • Favorite Folders: Quick access folder.
  • Base64 Encode/Decode: Encodes/decodes files using Base64 standard.
  • Command Prompt: Opens a command prompt.

Supported Programming Languages

The following programming languages are supported by IntelliFile:

  • ASP
  • Bash
  • Batch
  • C/C++
  • C#
  • CMake
  • CSS
  • Groovy
  • HTML
  • Java
  • JavaScript
  • JSON
  • Makefile
  • Markdown
  • MATLAB
  • PHP
  • Python
  • R
  • Rust
  • SQL
  • TCL/TK
  • XML

Create and Submit your Pull Request

As noted in the Contributing Rules for IntelliFile, all Pull Requests need to be attached to a issue on GitHub. So the first step is to create an issue which requests that the functionality be improved (if it was already there) or added (if it was not yet there); in your issue, be sure to explain that you have the functionality definition ready, and will be submitting a Pull Request. The second step is to use the GitHub interface to create the Pull Request from your fork into the main repository. The final step is to wait for and respond to feedback from the developers as needed, until such time as your PR is accepted or rejected.

Software Content Register

Release Name: IntelliFile
Description: IntelliFile is an alternative Windows version to the famous Total Commander!
Outgoing License: GNU General Public License v3.0
Type of content: static/dynamic libraries, source code, binary

base64
Description: base64 encoding and decoding with c++
Version: unspecified
Home Page: https://github.com/ReneNyffenegger/cpp-base64
License: Custom (René Nyffenegger’s license)
Format: source code, binary

CFilteredFolderDialog, CFolderDialog
Description: The CFolderDialog class allows you to add a folder-selection dialog box to your applications.
Version: unspecified
Home Page: https://www.codeproject.com/Articles/2024/CFolderDialog-Selecting-Folders
License: Code Project Open License
Format: source code, binary

genUp4win
Desciption: This library is a generic updater for Windows.
Version: 2.03
Home Page: https://github.com/mihaimoga/genUp4win
License: MIT
Format: source code, binary

HexCtrl
Desciption: Fully-featured Hex Control written in C++/MFC.
Version: 3.6
Home Page: https://github.com/jovibor/HexCtrl
License: Custom (Jovibor’s license)
Format: source code, binary

CHLinkCtrl
Description: This class allows you to create a static control on a window or dialog which behaves similar to a hyperlink as seen on a web page. When the mouse moves over the text the cursor becomes a hand and when you click on the text the hyperlink is executed.
Version: 1.43
Home Page: https://www.naughter.com/hlinkctrl.html
License: Custom (PJ Naughter’s license)
Format: source code, binary

CInstanceChecker
Description: This class implements single instance apps. Limiting your app to single instance is more tricky in Win32 with the removal of the hPrevInstance parameter from WinMain and the introduction of separate address spaces.
Version: 1.25
Home Page: https://www.naughter.com/sinstance.html
License: Custom (PJ Naughter’s license)
Format: source code, binary

Lexilla, Scintilla, and SciTE
Description: Scintilla is a free source code editing component. It comes with complete source code and a license that permits use in any free project or commercial product.
As well as features found in standard text editing components, Scintilla includes features especially useful when editing and debugging source code. These include support for syntax styling, error indicators, code completion and call tips. The selection margin can contain markers like those used in debuggers to indicate breakpoints and the current line. Styling choices are more open than with many editors, allowing the use of proportional fonts, bold and italics, multiple foreground and background colours and multiple fonts.

Version: 5.5.2
Home Page: https://www.scintilla.org/
License: Custom (Neil Hodgson’s license)
Format: source code, binary

CScintillaCtrl, CScintillaDoc, CScintillaView
Description: These classes provides a MFC and ATL/WTL wrapping for the Scintilla edit control (http://www.scintilla.org). This control provides an open source cross platform edit control. Some of the features it provides include syntax colouring, call tips, brace highlighting, Styles, margins and markers to name but a few. The provided wrapper classes make it easier to include the control in MFC / WTL projects on Windows.
Version: 1.89
Home Page: https://www.naughter.com/scintilla.html
License: Custom (PJ Naughter’s license)
Format: source code, binary

CVersionInfo
Description: This simple little class encapsulates the SDK calls which access version info from Win32 files. Most executables and DLL’s have a VS_VERSION_INFO resource associated with them and this class provides a simple C++ class to programmatically access this information.
Version: 1.13
Home Page: https://www.naughter.com/versioninfo.html
License: Custom (PJ Naughter’s license)
Format: source code, binary

CWndResizer
Description: Gives you total control when it comes to resizing windows.
Version: unspecified
Home Page: https://www.codeproject.com/Articles/125068/MFC-C-Helper-Class-for-Window-Resizing
License: Code Project Open License
Format: source code, binary

René Nyffenegger’s license: This source code is provided ‘as-is’, without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this source code must not be misrepresented; you must not claim that you wrote the original source code. If you use this source code in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original source code.
  3. This notice may not be removed or altered from any source distribution.

Jovibor’s license: Permission is hereby granted, free of charge, for any NON-COMMERCIAL use of the Software and associated documentation files.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
FOR ALL THIRD PARTY COMPONENTS INCORPORATED INTO THE SOFTWARE, THOSE COMPONENTS ARE LICENSED UNDER THE ORIGINAL LICENSE PROVIDED BY THE OWNER OF THE APPLICABLE COMPONENT.

PJ Naughter’s license: You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise) when your product is released in binary form. You are allowed to modify the source code in any way you want except you cannot modify the copyright details at the top of each module. If you want to distribute source code with your application, then you are only allowed to distribute versions released by the author. This is to maintain a single distribution point for the source code.

Neil Hodgson’s license: Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation.
NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

History

  • Version 1.01 (May 13th, 2022): Initial release.
  • Version 1.02 (May 20th, 2022): Implemented "New folder" functionality.
  • Version 1.03 (May 23rd, 2022): Implemented "Change drive" functionality.
  • Version 1.04 (May 24th, 2022): Implemented "View text file" functionality.
  • Version 1.05 (May 27th, 2022):
    • Implemented "View RTF file" functionality;
    • Implemented "View XML file" functionality;
    • Implemented "Context menu" functionality.
  • Version 1.06 (August 21st, 2022): Added "Change drive…" icon.
  • Version 1.07 (September 9th, 2022): Added Contributors hyperlink to AboutBox dialog.
  • Version 1.08 (January 23rd, 2023): Updated PJ Naughter’s CVersionInfo library to the latest version available. Updated the code to use C++ uniform initialization for all variable declarations.
  • Version 1.09 (January 24rd, 2023): Updated PJ Naughter’s CInstanceChecker library to the latest version available. Updated the code to use C++ uniform initialization for all variable declarations.
  • Replaced NULL throughout the codebase with nullptr.
    Replaced BOOL throughout the codebase with bool.
    This means that the minimum requirement for the application is now Microsoft Visual C++ 2010.
  • Version 1.10 (April 25th, 2023): Added base64 encode/decode functions.
  • Version 1.11 (May 13th, 2023): Added new changes suggested by Rick Dishman: Reset View, and save last folder.
  • Version 1.12 (May 15th, 2023): Added rename of file name on clicking its label in MFC ListView.
  • Version 1.13 (May 18th, 2023): Fixed an issue regarding editing image files reported by Rick Dishman.
  • Version 1.14 (May 19th, 2023): Fixed an issue regarding statusbar reported by Rick Dishman.
  • Version 1.15 (May 21st, 2023): Changed the double click implementation to open a file in EDIT mode.
  • Version 1.16 (May 27th, 2023): Updated About dialog with GPLv3 notice.
  • Version 1.17 (June 17th, 2023): Added quick access dialog for favorite folders.
  • Version 1.18 (June 25th, 2023):
    • Implemented "Command prompt" functionality;
    • Replaced old CHyperlinkStatic class with PJ Naughter’s CHLinkCtrl library.
  • Version 1.19 (August 17th, 2023):
    • Implemented "Switch views" functionality (Switches source view with target view);
    • Added social media links: Twitter, LinkedIn, Facebook, and Instagram;
    • Added shortcuts to GitHub repository’s Issues, Discussions, and Wiki.
  • Version 1.20 (August 26th, 2023):
    • Refactored CopyFile, MoveFile and DeleteFile functions.
    • Changed article’s download link. Updated the About dialog (email & website).
  • Version 1.21 (September 22nd, 2023): Switched to Visual Studio Enterprise 2022 (some changes were made in source code of the project).
  • Version 1.22 (September 30th, 2023): Added SCINTILLA control to view source code with syntax highlighting.
  • Version 1.23 (December 10th, 2023): Updated PJ Naughter’s CScintillaCtrl library to the latest version available. Removed the SetCallDirect & GetCallDirect methods. Instead now the CScintillaCtrl class will call the m_DirectStatusFunction if the calling thread is the same as the thread on which the Scintilla control was created. Thanks to Markus Nissl for this update.
  • Version 1.24 (December 29th, 2023): Updated PJ Naughter’s CScintillaCtrl library to the latest version available. Updated class to work with Scintilla v5.4.1. New messages wrapped include: SCI_CHANGESELECTIONMODE, SCI_SETMOVEEXTENDSSELECTION & SCI_SELECTIONFROMPOINT. Also updated the signatures of the following methods: GetDocPointer, SetDocPointer, CreateDocument, AddRefDocument and ReleaseDocument.
  • Version 1.25 (January 28th, 2024):
    • Added ReleaseNotes.html and SoftwareContentRegister.html to GitHub repo;
    • Replaced old CFileDialogST class with Armen Hakobyan’s CFolderDialog library.
  • Version 1.26 (February 21st, 2024): Switched MFC application’ theme back to native Windows.
  • Version 1.27 (March 31st, 2024):
    • Updated LEXILLA library to version 5.3.1 and SCINTILLA library to version 5.4.3.
    • Updated PJ Naughter’s CScintillaCtrl library to the latest version available. Updated class to work with Scintilla v5.4.3. New messages wrapped include: SCI_GETUNDOACTIONS, SCI_GETUNDOSAVEPOINT, SCI_SETUNDODETACH, SCI_SETUNDOTENTATIVE, SCI_SETUNDOCURRENT, SCI_PUSHUNDOACTIONTYPE, SCI_CHANGELASTUNDOACTIONTEXT, SCI_GETUNDOACTIONTYPE, SCI_GETUNDOACTIONPOSITION & SCI_GETUNDOACTIONTEXT.
  • Version 1.28 (April 26th, 2024):
    • Updated LEXILLA library to version 5.3.2 and SCINTILLA library to version 5.5.0.
    • Updated PJ Naughter’s CScintillaCtrl library to the latest version available.
  • Version 1.29 (July 21st, 2024):
    • Implemented "View text file" functionality for C/C++ programming language.
    • Implemented selection of files with specific search pattern, size, date or contents.
    • Implemented enhanced search function with full text search & replace.
  • Version 1.30 (July 26th, 2024):
    • Implemented "View text file" functionality for HTML/CSS/XML/JavaScript.
    • Implemented "View text file" functionality for Java programming language.
    • Implemented "View text file" functionality for Python programming language.
    • Updated LEXILLA library to version 5.3.3 and SCINTILLA library to version 5.5.1.
    • Updated PJ Naughter’s CScintillaCtrl library to the latest version available. Updated class to work with Scintilla v5.5.1. New messages wrapped include: SCI_AUTOCSETSTYLE, SCI_AUTOCGETSTYLE & SCI_CUTALLOWLINE.
  • Version 1.31 (August 24th, 2024):
    • Updated LEXILLA library to version 5.4.0 and SCINTILLA library to version 5.5.2.
    • Updated PJ Naughter’s CScintillaCtrl library to the latest version available. Updated class to work with Scintilla v5.5.2. New messages wrapped include: SCI_STYLESETSTRETCH, SCI_STYLEGETSTRETCH, SCI_GETUNDOSEQUENCE, SCI_LINEINDENT, SCI_LINEDEDENT, SCI_SETCOPYSEPARATOR & SCI_GETCOPYSEPARATOR.
  • Version 1.32 (September 3rd, 2024):
    • Enabled syntax highlighting for the following programming languages:
      • Bash
      • Batch
      • CMake
      • Groovy
      • JavaScript
      • JSON
      • Makefile
      • MATLAB
      • R
      • Rust
    • Implemented User Manual option into Help menu.
    • Implemented Check for updates… option into Help menu.
  • Version 1.33 (September 14th, 2024): Implemented "View binary file" functionality using Jovibor’s HexCtrl library.
  • Version 1.34 (October 11th, 2024):
    • Fixed access to Google Drive (bug reported by simon mago).
    • Fixed access to Favorite Folders (bug reported by markjuggles).
    • Fixed a situation when viewing a text file would result in a crash.
    • Enabled syntax highlighting for TCL/TK programming language.