J o i n E x t - Mar 18, 2006 

JoinExt is a free shell extension for combining multiple files into a single file. I originally wrote this utility for the purpose of combining mp3 rips of my audiobooks into a single mp3 file. Other mp3 "joiners" do bitrate conversions and other time consuming tasks on files that may already be in the same format. All that is really needed for these files is that they be appended to a single file, one after the other. Nearly every player will play such files without any problems. After getting fed up using "COPY /B x+x+x", I wrote this to make that task as simple as possible.

FAQ (Frequently Asked Questions)
  • What does JoinExt cost?
    • Nothing! JoinExt is free!
  • Where can I download JoinExt?
    • You can download JoinExt by clicking one of the download links to the left. Note that you should only be downloading JoinExt from this site to ensure that you are getting the latest version. If you get it from somewhere else, you're on your own.
  • When I try to install JoinExt, I get a message stating "A previous version of this product is already installed."
    • Unless you download the EXE installer, you must uninstall previous versions prior to installing a new one. For the MSI installer packages you can remove JoinExt from the Add/Remove Programs dialog in the Control Panel.
  • I installed JoinExt, but nothing happens!
    • The JoinExt shell extension is used through Windows Explorer. Select a bunch of files, right-click then select Join Files... from the popup menu. The rest is simple and you should be able to figure it out on your own.
  • Which installer should I download?
    • Both downloads contain the same package, so use the EXE one if you can. The ZIP package is available for those that have software restricting the download of EXE files from the Internet. If you download the ZIP package, you will need a ZIP utility to extract the installer.
  • What is the "Order items logically" menu option for?
    • This option controls the sorting of files that have a number in their name. Normally when text with embedded numbers is sorted, items like "File 1", "File 10" and "File 14" will be placed before items "File 2", "File 20", "File 24" and "File 3". This is because the program uses only the first digit to determine which item is less than or greater than some other item. What is typically required though is that the entire number in the text is used to control its placement so that the same items would be ordered as "File 1", "File 2", "File 3", "File 10", "File 14", "File 20" and "File 24". When the Order items logically option is checked, this second type of sorting is used. By default it is always checked so you will have to uncheck it if not required.
  • What is the "Ignore non-numeric text" menu option for?
    • This option causes the sorting to ignore any characters which are not numbers, up to the first number. With items like "Easy 01", "Difficult 02" and "3 - Agonizing" in the list, this option will cause the items to be sorted as "01", "02" and "3 - Agonizing". This method of sorting can be used with or without the Order items logically option. By default it is unchecked.
  • What tools do I need to compile the source?
    • VS.NET 2003, WTL 7.5x & WiX. Note that I don't plan on making any effort to support the source-code package. It is available so you can verify for yourself what the application does & does not do. Therefore, any problems you have rebuilding JoinExt are yours to resolve, though I will answer any general questions related to how or why I did something. I also encourage you to notify me of any issues/bugs you find in the code.

Version History:
  • x.x.x.x - ??? ??, ???
    • Bug fixes

  • - Mar 18, 2006
    • UPDATE! Modified join code to use unbuffered file I/O to prevent filling the system cache 

  • - Mar 13, 2006
    • BUGFIX! Fixed a bug in the file mapping code which prevented some files from being processed 

  • - Mar 10, 2006
    • BUGFIX! Fixed a bug which screwed up the order of files when dragging them more than one place
    • UPDATE! Added an option to show file paths on the order page 

  • - Mar 08, 2006
    • UPDATE! Switched UI to a wizard 

  • - Feb 27, 2006
    • BUGFIX! Fixed a bug which caused only the first 1MB of each source file to be joined 

  • - Feb 18, 2006
    • BUGFIX! Fixed a bug which caused large file joins to overwrite the start of the target file
    • UPDATE! Modified joining code to consume fewer system resources 

  • - Feb 13, 2006
    • BUGFIX! Removed dependency on functions not exported from MSVCRT.DLL on Win2k
    • UPDATE! Added some missing files to the source installation 

  • - Feb 12, 2006
    • Initial release 

System Requirements:
  • Windows 2003
  • Windows XP
  • Windows 2000
  • Windows NT 4.0+ w/ SP6, Common Controls 5.80.2614.3600+

JoinExt may possibly run on Windows 9x, but I haven't tested it on those versions. You will at the very least require the MSLU which can be downloaded here.
m u t e x e d[ . ]c o m / c o d e