| 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.
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-<ver>-<arch>.dllTo uninstall the product, run regsvr32 with the -u option:
regsvr32 -u adsshell-<ver>-<arch>.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". It has the extension ".adslnk" (which is not shown in Windows Explorer) and it has the same name as the stream it points to does.
If a stream link points to existing stream then it has the green arrow icon. If it points to non-existing stream then it has crossed red circle icon.
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 exceptions: 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.
The tooltip window of the stream link shows decoded name of a stream, its size in bytes and relative path to its host file.
The screenshot below shows the sample streams directory for the host file named "File with streams.txt" which has four streams. One of the links points to a stream with encoded name and the other points to non-existing stream.
The utility searches for the streams in the selected files and directories. It does not recurse into the directories.
If any of the selected files or directories contains alternate data streams then the context menu will show the command.
This command creates streams directory for the file and places its stream links there.
If context menu is invoked with Shift key pressed then the command appears in the menu regardless of the presence of the streams.
Context menu of a stream link has 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 content. Notepad is capable of reading and writing streams, while other programs may not be able to do this.
The content of a stream may be copied to regular file with command. The file will have the same name as the stream link does.
The source of stream content are the files or other streams. If the source file is the stream link, then the content of a stream is the actual source, not the content of the link.
When clipboard contains the files then the context menu of each file and directory has command. This command writes the content of the files in clipboard to the streams of the target files, creating one stream per source file in each target file. Each stream will have the same name as its source file does. Executing the command with the Shift key pressed will create stream links for each created stream.
When clipboard contains single file then the context menu of the stream links has command. Executing this command writes the content of the file in clipboard to the selected stream.
If the link points to non-existing stream then the link menu has command. This command creates an empty stream and opens it using shell file type associations as described in Viewing Streams Content.
New stream links can be created using menu.
Dropping a file to a stream link writes the content of the file to the stream. If Shift key is pressed then the source file or stream is deleted.
Context menu of the stream links has command. This command deletes the stream from the host file. Executing the command with the Shift key pressed will also delete the stream links.
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. Cleaning preserves the streams and stream directories.
| 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.