Alternate Data Streams Shell Help

Table of contents

1. Introduction

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.

Back to top

2. Installation and removal

Administrative rights are required to perform installation and removal.

Uninstalling previous version is not neccessary but recommended.

Automatic installation

Use the provided installer to install and remove the product. Uninstallation preserves the existing stream links.

Manual installation

Copy the product's file to desired location and register it with the regsvr32 utility:

regsvr32 adsshell.dll

To uninstall the product, run regsvr32 with the -u option:

regsvr32 -u adsshell.dll

then delete the file. You may need to logoff prior to deleting as the shell extension modules are usually locked by shell.

Back to top

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'.

Encoded stream names

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

Back to top

4. Discovering streams

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 Preview streams 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 Update streams folder command from the context menu of the folder.

Back to top

5. Viewing streams contents

Opening streams

Context menu of stream links includes Open stream 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).

Using custom columns of Windows Explorer

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

Using preview pane of Windows Explorer*

ADS Shell implements limited support for previewing streams' contents in preview pane. Select a stream link to preview the contents. To display a preview of a file of particular type, ADS Shell relies on installed previewer for that type (for example, to preview PDF documents you need to have Adobe Reader installed).

Using thumbnails in Windows Explorer

When the thumbnail view is selected in Windows Explorer, the streams links display thumbnails of the contents of the streams they represent. ADS Shell itself does not render the thumbnails; instead, it delegates to the installed thumbnail provider for the file type which contents of the stream belongs to.

*Requires Windows Vista or later

Back to top

6. Comparing streams

To compare streams select their links and click Compare streams from the context menu of the links. ADS Shell invokes a program specified in an environment variable 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.

This feature is particularly useful for comparing snapshots of a file.

Back to top

7. Copying streams to files

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 Copy stream here 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 Copy stream here 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 BITS copy here from the menu.

Back to top

8. Creating and editing streams contents

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.

Using host file context menu

When clipboard contains files then the context menu of each file and directory includes Paste to streams 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.

Using stream link context menu

Paste from clipboard

When clipboard contains single file then the context menu of the stream links includes Paste command. Executing this command writes the contents of the file from the clipboard to the selected stream.

Creating and editing streams in-place

To edit a stream open it with Open stream command described in Opening streams. If stream link represents a non-existing stream then this command first creates an empty stream and then opens it.

New stream links can be created using File > New > Alternate Data Stream Link menu.

Using drag-and-drop

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.

Back to top

9. Storing file snapshots in the streams

A context menu of files contains Copy snapshot to a stream command which copies file contents to the file's stream named "snapshot_YYYYMMDD-hhmmss.ext" where YYYYMMDD-hhmmss is the timestamp - the date and time when the context menu of the file was invoked, and ext is the file's extension.

To revert the file contents to the specific snapshot click Copy stream to the host file from the context menu of the stream link which represents the stream containing the desired snapshot.

When the Copy snapshot to a stream 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.

Back to top

10. Deleting streams

To delete a stream, click Delete stream from the context menu of the stream link. To delete the stream link as well hold <Shift> key.

Back to top

11. Notes stream

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 Notes 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 Notes.

To delete the notes stream from a file invoke the file's context menu holding <Shift> key and click Delete notes.

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)

Back to top

12. Wiping out

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

Back to top

13. Getting further help

You can send questions and feedback by e-mail: support (at) evilapp (dot) com,

or via Twitter:

Follow @evilapp to receive notifications about new product releases.

Back to top

14. Version history

version 1.4 released 29-Jan-2016
Stream contents is displayed as a thumbnail in Thumbnails view of Windows Explorer.
version 1.3.1 released 10-May-2015
When a stream contains an icon then it is used as an icon of the stream's link.
Snapshots of extensionless files could not be created.
version 1.3 released 08-May-2014
Storing file snapshots in the streams.
Comparing streams.
Update streams folder command.
Copy stream to the host file command.
Copying stream to a file destroyed the streams of the file.
version 1.2.1 released 18-Jul-2013
Memory leaked when contents of streams was displayed in preview pane.
version 1.2 released 28-Jun-2013
Previewing stream contents in preview pane of Windows Explorer (requires Windows Vista or later)
Stream size and contents did not display in details pane of Windows Explorer
version 1.1 released 20-Feb-2013
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
Stream link icon matches the type of the stream
Streams whose names contain characters that are not allowed in file names could not be opened with 'Open stream' command
Paste to streams 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

Back to top

15. Disclaimer

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.

Back to top