The BetterStreams Library

Home ] AsyncStream ] [ AlternateStreams ] BetterBufferedStream ] Performance ] Documentation ] Download ] Purchase ] Help ]

AlternateStreams

AlternateStreams enables you to read, write, delete, create and list alternate data streams (ADS) in an NTFS file.  Under NTFS, each file has a "main" unnamed stream (this is the one the Framework's file I/O classes manipulate) as well as zero or more "alternate" named streams; for example, Internet Explorer uses an alternate stream named "Zone.Identifier" to record which security zone a downloaded file came from, and in general they can be used to conveniently store arbitrary metadata for a file without the need to resort to a database or a separate metadata file.  They can also be used to create "compound storage" for application data: if your application needs to serialize ten objects to a single file, you would normally sequentially write them in XML or binary; however, to modify any of the objects, the entire file would need to be rewritten.  With alternate streams you can simply create a separate named stream for each object and modify these streams individually.  Please note that AlternateStreams requires Windows 2000/XP or later.  [examples: 1, 2]

Download an evaluation copy of the library to try it in your own applications (or use the included test package).  You can also view the documentation for this class online.

Typical applications

Caveats