Applications are Evil | Alternate Data Streams Shell Help |
Alternate Data Streams Shell is the utility for working with NTFS alternate data streams. It represents the streams as files and exposes its functions through the Windows shell facilities.
The user of the utility is assumed to know what the alternate data streams are.
Administrative rights are required to perform installation and removal.
Uninstalling previous version is not neccessary but recommended.
Use the provided installer to install and remove the product. Uninstallation preserves the existing stream links.
Copy the product's file to desired location and register it with the regsvr32 utility:
regsvr32 adsshell.dllTo uninstall the product, run regsvr32 with the -u option:
regsvr32 -u adsshell.dllthen delete the file. You may need to logoff prior to deleting as the shell extension modules are usually locked by shell.
A file representing a stream is called "stream link". These files have extension ".adslnk" (not shown in Windows Explorer) and are named identically to the streams they represent.
If a stream link represents an existing stream then its icon matches the extension of the stream. For the stream links representing non-existing streams a crossed red circle icon is displayed.
The stream links are located in the directory named filename_streams, where filename is the name of the host file containing streams. The streams directory and the host file are located in the same directory.
The drive root directories (such as 'C:\') are exception: their stream links are located in '_streams' directory which in turn is located in the drive root directory. For example, the links for the streams of 'C:\' are located in 'C:\_streams'.
When the stream name contains characters that are not allowed in file names, such characters are encoded in the link name as '%xx' where 'xx' is the hexadecimal code of a character. For example, character '?' is encoded as '%3f'. The percent character itself is encoded too as '%25'.
A popup infotip of a stream link shows decoded name of the stream, its size in bytes and relative path to its host file.
Pic. 1 shows the sample streams directory for the host file named "File with streams.txt" which has four streams of various types. One of the links represents a stream with encoded name and the other one represents non-existing stream.
Pic. 1. Streams directory |
ADS Shell searches for the streams in the files and folders selected in Windows Explorer. It does not recursively search subfolders.
If any of the selected files or directories contains alternate data streams then its context menu includes a
command.This command creates streams folder for the file, places its stream links there, and opens the directory in new window. To suppress opening the directory hold <Shift> key.
If context menu is invoked with <Shift> key held then the command appears in the menu regardless of the presence of the streams.
The stream links in a streams folder also can be created with the
command from the context menu of the folder.Context menu of stream links includes
command which tries to open a stream using Windows shell file type associations. For example, if stream name ends with ".txt" then opening the stream starts Notepad loaded with the stream's contents (Notepad is capable of reading and writing streams, while other programs may not be able to do this).The columns ':Stream preview' and ':Stream size' display the contents and the size of the streams represented by stream links. The names of the columns begin with a colon to provide mnemonic connection to the streams (colon separates stream names from file names). The contents of streams is interpreted as text.
Pic. 2. Stream contents and size displayed in columns |
*Requires Windows Vista or later
To compare streams select their links and click ADSDIFF to perform the comparison. Up to three streams can be compared (provided that the file compare utility supports this). If single stream link is selected then the stream and its host file are compared.
from the context menu of the links. ADS Shell invokes a program specified in an environment variableThis feature is particularly useful for comparing snapshots of a file.
The contents of a stream may be copied to a regular file. The file will be named identically to the stream link.
To copy a stream to its streams directory click
from the context menu of the stream link.To copy stream to any directory drag the stream link to that directory with right mouse button pressed and click
from the menu.To copy very large streams consider using BITS Shell. It provides reliable stream copying which can be suspended and resumed (refer to BITS Shell Help for details). To copy stream with BITS Shell drag the stream link to destination directory with right mouse button pressed and click from the menu.
The source of stream contents are the files or other streams. If the source file is the stream link, then the contents of the stream is the actual source, not the contents of the link.
When clipboard contains files then the context menu of each file and directory includes
command. This command writes the contents of the files from the clipboard to the streams of the target files, creating one stream per source file in each target file. Each stream is named identically to its source file.
When clipboard contains single file then the context menu of the stream links includes
command. Executing this command writes the contents of the file from the clipboard to the selected stream.To edit a stream open it with Opening streams. If stream link represents a non-existing stream then this command first creates an empty stream and then opens it.
command described inNew stream links can be created using
menu.
Dropping a file to a stream link writes the contents of the file to the stream. If <Shift> key is held then the source file is deleted.
To revert the file contents to the specific snapshot click
from the context menu of the stream link which represents the stream containing the desired snapshot.When the
command is invoked on a group of files, snapshots of all files in the group get the same timestamp. This allows to work with snapshots of multiple files as with a single compound snapshot.To compare snapshots use the stream comparison feature.
Caution: some file-editing software saves files by deleting an existing file and creating a new one, instead of overwriting the contents of existing file. The deletion of a file destroys all streams of it and therefore its snapshots, if any. You are advised to check the behavior of your software before using the streams to store file snapshots.
To delete a stream, click
from the context menu of the stream link. To delete the stream link as well hold <Shift> key.ADS Shell implements extended support for streams named notes.txt intended for attachment of notes to the files and folders. The implementation provides shortcuts to discover, create, view, edit, and delete such streams.
The files containing stream named notes.txt are marked with a green disc icon with a letter 'N' inside. The context menu of such files includes command which opens the notes stream using a program associated with the .txt extension.
To create the notes stream in a file invoke the file's context menu holding <Shift> key and click
.To delete the notes stream from a file invoke the file's context menu holding <Shift> key and click
.The contents of the notes stream can be viewed in Windows Explorer custom column named ':Notes'. On Windows Vista and later systems this feature is not available in Windows Explorer, but is available in some third-party file managers.
Pic. 3. A file containing a notes stream (Windows XP) |
Alternate Data Streams Shell installs disk cleaner which is accessible through standard Disk Cleanup utility. It allows to delete all stream links on selected drive. The cleanup does not delete the streams and stream directories.
Pic. 4. Disk cleanup |
You can send questions and feedback by e-mail: support (at) evilapp (dot) com,
You can also subscribe to RSS feed to receive notifications about new product releases.
version 1.4 released 29-Jan-2016 |
New |
Stream contents is displayed as a thumbnail in Thumbnails view of Windows Explorer. |
version 1.3.1 released 10-May-2015 |
Changed |
When a stream contains an icon then it is used as an icon of the stream's link. |
Fixes |
Snapshots of extensionless files could not be created. |
version 1.3 released 08-May-2014 |
New |
Storing file snapshots in the streams. |
Comparing streams. |
command. |
command. |
Fixes |
Copying stream to a file destroyed the streams of the file. |
version 1.2.1 released 18-Jul-2013 |
Fixes |
Memory leaked when contents of streams was displayed in preview pane. |
version 1.2 released 28-Jun-2013 |
New |
Previewing stream contents in preview pane of Windows Explorer (requires Windows Vista or later) |
Fixes |
Stream size and contents did not display in details pane of Windows Explorer |
version 1.1 released 20-Feb-2013 |
New |
Support for Windows Vista and later systems |
Copy streams to any directory |
Columns displaying stream contents and size |
Extended support for the 'notes.txt' stream |
'Preview streams' (formerly 'Create Streams Folder') optionally opens streams folder |
Changed |
Stream link icon matches the type of the stream |
Fixes |
Streams whose names contain characters that are not allowed in file names could not be opened with 'Open stream' command |
Removed |
no longer creates stream links |
Dropped support for Windows 2000 |
version 1.0.3 released 13-Aug-2009 |
Added support for drive root directories (such as 'C:\') |
version 1.0 released 21-Jul-2009 |
First release |
The software is provided "AS IS" without any warranty, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The author will not be liable for any special, incidental, consequential or indirect damages due to loss of data or any other reason.